home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / c / laserlib / doc / superlib.doc < prev    next >
Encoding:
Text File  |  1994-09-22  |  127.7 KB  |  6,629 lines

  1. 072040001030000144008000002006000
  2. 11
  3. 207.07.89- # -superlib.doc1
  4. F0110030001
  5. R   [.◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆...]0010
  6. 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
  7. 8000100001\SUPER1.IMG
  8. ê
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. 8000100001\SUPER2.IMG
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51. 8000100001\SUPER3.IMG
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74. êInhaltsverzeichnis                                  Inhaltsverzeichnis
  75.  
  76.  
  77.  
  78. ü1. libstr.a  - Funktionen zum Verarbeiten von Zeichenkettenë
  79. ü
  80. Ç   Zeichenkette formatieren 
  81.         (stradj, stradjl, stradjr)
  82.  
  83.    Zeichenketten aneinanderhängen
  84.         (strcat, strncat, strcatn, strncatn)
  85.  
  86.    Adresse eines Zeichens in einer Zeichenkette suchen
  87.         (strchr, strichr, strrchr, strirchr)
  88.  
  89.    Zeichenketten vergleichen
  90.         (strcmp, stricmp, strncmp, strnicmp, strscmp, striscmp,
  91. strnscmp,strniscmp)
  92.  
  93.    Longwert von einer Basis in eine andere Basis wandeln
  94.         (strcnvl,strcnvul)
  95.  
  96.    Zeichenketten miteinander kopieren
  97.         (strcpy, strncpy, strn0cpy, strcpyn, strncpyn, strpcpy)
  98.  
  99.    Bestimmte Zeichen einer Zeichenkette zählen
  100.         (strcspn, stricspn, strspn, strispn)
  101.  
  102.    Zeichenkette zentrieren
  103.         (strctr)
  104.  
  105.    Duplikat einer Zeichenkette erstellen
  106.         (strdup, strndup)
  107.  
  108.    Zeichenkette auf Leerzeichen untersuchen
  109.         (stremp, strnemp)
  110.  
  111.    Zeichenkette in einer Zeichenkettenmenge suchen
  112.         (strfnd, strifnd)
  113.  
  114.    Longwert in String wandeln
  115.         (strfroml,strfromul)
  116.  
  117.    Groß- in Kleinbuchstaben wandeln und umgekehrt
  118.         (strinv, strninv)
  119.  
  120.    Länge einer Zeichenkette berechnen
  121.         (strlen)
  122.  
  123.    Zeichenkette in Kleinbuchstaben wandeln
  124.         (strlwr, strnlwr, strlwrg, strnlwrg)
  125.  
  126.    Zwei Zeichenketten matchen
  127.         (strmat, strimat, strnmat, strnimat)
  128.  
  129.    Teil einer Zeichenkette suchen
  130.         (strpbrk, stripbrk, strrpbrk, strirpbrk)
  131.  
  132.    Position eines Zeichens ineiner Zeichenkette suchen
  133.         (strpos, stripos, strrpos, strirpos)
  134. 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
  135.  
  136.  
  137.  
  138. ê______________________________________________________________________Ç
  139. êInhaltsverzeichnis                                  InhaltsverzeichnisÇ
  140.  
  141.  
  142.  
  143.    Zeichen einer Zeichenkette umdrehen (an sich selbst spiegeln)
  144.         (strrev)
  145.  
  146.    Zeichenkette rotieren
  147.         (strrotl, strrotr, strnrotl, strnrotr)
  148.  
  149.    Zeichenmuster in einer Zeichenkette ersetzen
  150.         (strrpl, strirpl, strnrpl, strnirpl)
  151.  
  152.    Zeichen einer Zeichenkette durch ein Zeichen ersetzen
  153.         (strset, strnset, strsset,strspc, strnspc,memset)
  154.  
  155. ZeicheneinerZeichenkettesortieren
  156. (strsort,strisort,strrsort,strirsort)
  157.  
  158.    Adresse einer Teil-Zeichenkette in einer Zeichenkette suchen
  159.         (strstr, stristr, strrstr, strirstr)
  160.  
  161.    Zeichenkette in Token aufteilen
  162.         (strtok)
  163.  
  164.    Zeichenketten in Zahlen konvertieren
  165.         (strtol, strtoul, strtof)
  166.  
  167.    Zeichen aus Zeichenkette entfernen
  168.         (strtrm, strtrml, strtrmr, strptrm, strptrml, strptrmr)
  169.  
  170.    Zeichenkette in Großbuchstaben wandeln
  171.         (strupr, strnupr, strwupr, struprg, strnuprg)
  172.  
  173.    Teil-Zeichenkette kopieren
  174.         (substr, subnstr)
  175.  
  176. Adressbereichevergleichenundkopieren
  177. (memchr,memcmp,memcpy)
  178.  
  179.  
  180. ü2. libterm.a - Funktionen zumSteuernder Bildschirmausgabe
  181.  
  182. 2.1. termcap
  183. Ç
  184.    Termcap-Eintrag aus Termcap-Datei lesen
  185.         (tgetent)
  186.  
  187.    Numerischen Termcap-Eintrags-Feld-Wert suchen
  188.         (tgetnum)
  189.  
  190.    Vorhandensein eines Termcap-Eintrags-Feldes testen
  191.         (tgetflag)
  192.  
  193.    Alphanumerischen Termcap-Eintrags-Feld-Wert suchen
  194.         (tgetstr)
  195.  
  196.    Cursor-Adressierungs-String erstellen
  197.         (tgoto)
  198.  
  199.    String auf Bildschirm ausgeben
  200.         (tputs)
  201.  
  202. ê______________________________________________________________________Ç
  203. êInhaltsverzeichnis                                  InhaltsverzeichnisÇ
  204.  
  205.  
  206.  
  207. ü2.2. terminalë
  208. Ç
  209.    Terminal-Variablen und Terminal-Mode initialisieren
  210.         (t_init)
  211.  
  212.    Terminal-Mode zurücksetzen
  213.         (t_exit)
  214.  
  215.    Terminal zwischen Normal und Raw umschalten
  216.         (t_rawon, t_rawoff)
  217.  
  218.    Signalton auf Standard-Ausgabe ausgeben
  219.         (t_beep)
  220.  
  221.    Bildschirmbereiche löschen
  222.         (t_cls, t_cleol, t_cleos)
  223.  
  224.    Bildschirm-Cursor an- und ausschalten
  225.         (t_curson, t_cursoff,t_cursstat)
  226.  
  227. Bildschirm-Cursor-Blinkenan-undausschalten
  228. (t_cblink,t_csteady)
  229.  
  230.    Tastencode oder Konstante für Sondertaste liefern
  231.         (t_getc)
  232.  
  233.    Bildschirm-Cursor positionieren
  234.         (t_goxy,t_chome,t_cup,t_cdown,t_cright,t_cleft)
  235.  
  236.    Terminal-Attribute setzen
  237.         (t_setatt, t_invon, t_invoff)
  238.  
  239. Tabulatorweitesetzen(intern)
  240. (t_settw)
  241.  
  242. LiniengrafikaufBildschirmerzeugen
  243. (t_hline,t_vline,t_box)
  244.  
  245. 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
  246. ü
  247. 3.libmenu.a-FunktionenzumErstellenundBearbeitenvonMenüs
  248. Ç
  249.    Popup-Menu aufbauen und ausführen
  250.         (pmexec)
  251.  
  252.    Popup-Menü-Einträge selektieren / deselektieren
  253.         (pmselect, PMSelect, PMDesel)
  254. 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
  255.  
  256.  
  257. ü4.libdata.a-FunktionenzumBearbeitenvonDatenstrukturenÇ
  258.  
  259. Stack-Datenstrukturaufbauenundmanipulieren
  260. (stacknew,stackdel,stackpush,stackpop,stacktop,stackshow,
  261. stacktype,stackdepth,stackname,stackempty)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ê______________________________________________________________________Ç
  269. êInhaltsverzeichnis                                  InhaltsverzeichnisÇ
  270.  
  271.  
  272.  
  273. ü5.libetc.a-DiverseFunktionen
  274.  
  275. ÇProgramm-Aufruf-ArgumenteprüfenundVariablenzuordnen
  276. (getarg,GetArg)
  277.  
  278. Systemkommandoausführen
  279. (system)
  280.  
  281. Zeichenkettebildschirmgesteuerteditieren
  282. (editfld)
  283.  
  284.  
  285. ü6. Anhang
  286.  
  287. 6.1. Bedeutung der Termcap - Einträge
  288.  
  289. 6.2. Atari Termcap
  290.  
  291. 6.3. Atari vt52 - Escape - Sequenzenë
  292. ü
  293. 7. Index
  294. Ç
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330. 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
  331.  
  332. ü
  333. ê______________________________________________________________________
  334. 8000100001\ABHAENG1.IMG
  335. ê
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359. 8000100001\ABHAENG2.IMG
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387. 8000100001\ABHAENG3.IMG
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. Ç
  401. Ç
  402. 8000100001\STR1.IMG
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423. 8000100001\STR2.IMG
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451. 8000100001\STR3.IMG
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468. êlibstrAllgemeineslibstr
  469. à
  470.  
  471. Ç
  472. üNAMEÇ
  473.  
  474. àlibstr-FunktionenzumVerarbeitenvonZeichenketten
  475.  
  476.  
  477. üBESCHREIBUNGà
  478. ü
  479. ÇDieLibraryülibstrÇstelltFunktionenfürdenUmgangmitundfür
  480. dieManipulationvonZeichenketten(Strings)zurVerfügung.
  481.     FürdieBenutzungdereinzelnenFunktionenistdieDatei
  482.     ülibstr.incÇzuincluden.
  483.     DieFunktionenunterteilensichinzweiGruppen.Dabeibeginnen
  484. dieNamenallerFunktionendererstenGruppe'str'bzw.endenauf
  485. 'str';sieverarbeitenmitdemNullzeichen'\0'abgeschlossene
  486. Zeichenketten.DieNamenderFunktionenderzweitenGruppebeg-
  487. innenmit'mem'undbehandelndasNullzeichenênichtÇalsSonder-
  488. zeichenfürdasZeichenkettenende.
  489. ü
  490. Ç
  491. üDATEIENÇ
  492.  
  493. libstr.a
  494. libstr.inc
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530. ü
  531. ê______________________________________________________________________Ç
  532. êlibstrstradj, stradjl,stradjrlibstr
  533. à
  534. ê
  535. Ç
  536. üNAME
  537. Ç
  538. à    stradj,stradjl,stradjr-Zeichenketteformatieren
  539.  
  540. ü
  541. SYNTAX
  542. Ç
  543.     #include <libstr.inc>
  544.  
  545.     BYTE *stradj (str, dir)     
  546.     BYTE *str;
  547.     WORD dir;
  548.     
  549.     BYTE *stradjl (str, dir)     
  550.     BYTE *str;
  551.     WORD dir;
  552.  
  553.     BYTE *stradjr (str, dir)     
  554.     BYTE *str;
  555.     WORD dir;
  556.  
  557.  
  558. üBESCHREIBUNGÇ
  559.  
  560.     üstradjlÇ bzw. üstradjÇ richten die Zeichenkette str linksbündig aus.
  561. üstradjrÇformatiertdieZeichenkettestrrechtsbündig. 
  562. In Abhängigkeit von dir werden dir Leerzeichen vor (hinter)str
  563.     gehängt (dir > 0) oder dir Zeichen (nicht nur leere!) entfernt.
  564.  
  565.  
  566. üRETURNWERTÇ
  567.  
  568.     Es wird die Adresse der formatierten Zeichenkette zurückgeliefert.
  569.  
  570.  
  571. üBEMERKUNG
  572.  
  573. Ç    Insbesondere bedeutet stradj? (str, 0 - strlen (str)),daß str
  574.  gelöscht wird. Es muß gewährleistet sein, daß der Platz der
  575.  Zeichenkette str für das Hinzufügen von Leerzeichen ausreicht.
  576. üstradjÇistalsMakrodefiniertundwirdaufüstradjlÇabgebildet.
  577. ü
  578.  
  579. DATEIENÇ
  580.  
  581.     libstr.inc
  582.     libstr.a
  583. ü
  584. Ç
  585. üREFERENZÇ
  586.  
  587. ü    Çstrlen,strctr
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594. ê
  595. ______________________________________________________________________
  596. 9[....◆..◆.◆....◆....◆....◆◆◆◆.◆....◆....◆.........◆....◆....◆........]0010
  597. êlibstrstrcat,strncat,strcatn,strncatnlibstr
  598. Ç
  599.  
  600. ü
  601. NAME
  602. Ç
  603. à    strcat, strncat,strcatn,strncatn -  Stringsaneinanderhängen
  604.  
  605.  
  606. üSYNTAXÇ
  607.  
  608.     #include <libstr.inc>
  609.  
  610.     BYTE *strcat (dest, source)
  611.     BYTE *dest, *source;
  612.  
  613.     BYTE *strncat (dest, source,limit)
  614.     BYTE *dest, *source;
  615. WORDlimit;
  616.  
  617.     BYTE *strcatn (dest, source1, source2, ..., NULP)
  618.     BYTE *dest, *source1, *source2, ...;
  619.  
  620.     BYTE *strncatn (dest, limit,source1, source2, ..., NULP)
  621.     BYTE *dest, *source1, *source2, ...;
  622. WORDlimit;
  623.  
  624.  
  625. üBESCHREIBUNGÇ
  626.  
  627.     üstrcatÇhängtdie Zeichenkette source an das Ende der Zeichenkette
  628.  dest.üstrncatÇhängtmaximaldieerstenlimitZeichenvonsource
  629. andasEndevondest.üstrcatnÇhängtdie Zeichenkette source1 und
  630.  eventuell folgende Zeichenketten source2, ... bis zur leeren
  631.  Zeichenkette NULP(muss immer letzter Parameter sein!) an das Ende
  632.  der Zeichenkette dest.üstrncatnÇarbeitetwieüstrcatnÇ,kopiert
  633. jedochmaximaldieerstenlimitZeichenjederZeichenkette
  634. source1,....
  635.  
  636.  
  637. üRETURNWERT
  638.  
  639. Ç    Es wird die Adresse der Ziel-Zeichenkette destzurückgeliefert.
  640.  
  641.  
  642. üBEMERKUNG
  643. Ç
  644.     Ist limit größer als die Länge von sourceoder negativ, so werden
  645.     alle Zeichen von source an dest gehängt.
  646.  
  647.  
  648. üDATEIENÇ
  649.  
  650.     libstr.inc
  651.     libstr.a
  652.  
  653.  
  654. üREFERENZÇ
  655.  
  656.     strcpy, strncpy, strn0cpy, strcpyn,strncpyn
  657. ê
  658.  
  659.  
  660. ______________________________________________________________________
  661. êlibstrstrchr,strichr,strrchr,strirchrlibstr
  662.  
  663. ü
  664.  
  665. NAME
  666. à
  667.     strchr,strichr,strrchr,strirchr-Adressee.Zeichenssuchen
  668. Ç
  669.  
  670. üSYNTAXÇ
  671.  
  672.     #include <libstr.inc>
  673.  
  674.     BYTE *strchr (str, symbol)
  675.     BYTE *str;
  676.     BYTE symbol;
  677.  
  678.     BYTE *strichr (str, symbol)
  679.     BYTE *str;
  680.     BYTE symbol;
  681.  
  682.     BYTE *strrchr (str, symbol)
  683.     BYTE *str;
  684.     BYTE symbol;
  685.  
  686.     BYTE *strirchr (str, symbol)
  687.     BYTE *str;
  688.     BYTE symbol;
  689.  
  690. ü
  691. BESCHREIBUNG
  692. Ç
  693.     üstrchrÇsuchtdie erste Position des Zeichens symbol innerhalb der
  694.  Zeichenkette str ausgehend vom Stringanfang.üstrichrÇunterscheidetü
  695. ÇdabeinichtzwischenGroß-undKleinbuchstaben.üstrrchrÇsuchtdas
  696. ersteAuftretenvonsymbolausgehendvomEndedesStringsstr.
  697. üstrirchrÇdifferenziertdabeinichtzwischenGroß-/Kleinbuchstaben.
  698.  
  699.  
  700. üRETURNWERTÇ
  701.  
  702.     Die Adresse des Zeichens symbol wird zurückgeliefert oder NULP,
  703.     falls symbol nicht in der Zeichenkette str vorhanden ist.
  704.  
  705.  
  706. üBEMERKUNGÇ
  707.  
  708.     keine
  709. ü
  710.  
  711. DATEIEN
  712. Ç
  713.     libstr.inc
  714.     libstr.a
  715.  
  716.  
  717. üREFERENZÇ
  718.  
  719.     strstr, stristr, strirstr, strrstr,strpbrk,stripbrk,strrpbrk
  720. strirpbrk
  721.  
  722.  
  723.  
  724. ê______________________________________________________________________
  725. êlibstrstrcmp,stricmp,strncmp,strnicmp,strscmp,striscmplibstr
  726.  
  727. ü
  728.  
  729. NAME
  730. à
  731.     strcmp,stricmp,strncmp,strnicmp,
  732. strscmp,striscmp,strnscmp,strniscmp-Stringsvergleichen
  733. ü
  734.  
  735. SYNTAXÇ
  736.  
  737.     #include <libstr.inc>
  738.  
  739.     WORD strcmp (str1, str2)
  740.     BYTE *str1, *str2;
  741.  
  742.     WORD stricmp (str1, str2)
  743.     BYTE *str1, *str2;
  744.  
  745.     WORD strncmp (str1, str2, limit)
  746.     BYTE *str1, *str2;
  747.     WORD limit;
  748.  
  749.     WORD strnicmp (str1, str2, limit)
  750.     BYTE *str1, *str2;
  751.     WORD limit;
  752.  
  753.     WORD strscmp (str1, str2)
  754.     BYTE *str1, *str2;
  755.  
  756.     WORD striscmp (str1, str2)
  757.     BYTE *str1, *str2;
  758.  
  759.     WORD strnscmp (str1, str2,limit)
  760.     BYTE *str1, *str2;
  761. WORDlimit;
  762.  
  763.     WORD strniscmp (str1, str2,limit)
  764.     BYTE *str1, *str2;
  765. WORDlimit;
  766.  
  767.  
  768. üBESCHREIBUNGÇ
  769.  
  770.     üstrcmpÇuntersuchtdie Zeichenketten str1 und str2 werden auf
  771.  Gleichheit bezüglichdereinzelnenZeichen.üstricmpÇvergleicht
  772. ebenfallsbeideZeichenketten,jedochohnezwischenGroß-und
  773. Kleinbuchstabenzuunterscheiden.üstrncmpÇvergleichtmaximaldie
  774.     ersten limitZeichen der Zeichenketten str1 und str2.üstrnicmpÇ
  775. unterscheidetdabei nichtzwischen Groß- und Kleinbuchstaben.
  776. üstrscmpÇ,üstriscmpÇ,üstrnscmpÇundüstrniscmpÇarbeitenwieüstrcmpÇbzw.
  777. üstricmpÇbzw.üstrncmpÇbzw.üstrnicmpÇ,jedochwerdenbeidemVerglei-
  778. chenLeerzeichenundTabsvernachlässigt.
  779.  
  780. ü
  781. RETURNWERT
  782.  
  783. Ç    Sind beide Zeichenketten identisch, so wird 0, ansonsten die
  784.     Differenz des letzten verglichenen Zeichenpaares von str1 und str2
  785.     zurückgeliefert.
  786.  
  787. ü
  788. ê______________________________________________________________________
  789. êlibstrstrcmp,stricmp,strncmp,strnicmp,strscmp,striscmplibstr
  790. Ç
  791. ê
  792. ü
  793. BEMERKUNG
  794. Ç
  795.     keine
  796.  
  797.  
  798. üDATEIEN
  799. Ç
  800.     libstr.inc
  801.     libstr.a
  802.  
  803.  
  804. üREFERENZÇ
  805.  
  806.     strmat,strimat,strfnd,strifnd
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852. ê______________________________________________________________________
  853. êlibstr                     strcnvl,strcnvul                    libstrÇ
  854.  
  855.  
  856. ü
  857. NAME
  858. à
  859.     strcnvl.
  860. strcnvul - Longwert von einer Basis in eine andere Basis wandeln
  861.  
  862. ü
  863. SYNTAX
  864. Ç
  865.     #include <libstr.inc>
  866.  
  867.     BYTE *strcnvl (number, ibase, obase)
  868.     BYTE *number;
  869.     WORD ibase, obase;
  870.  
  871.     BYTE *strcnvul (number, ibase, obase)
  872.     BYTE *number;
  873.     WORD ibase, obase;
  874.  
  875. ü
  876. BESCHREIBUNG
  877. Ç
  878.     üstrcnvlÇ interpretiert den String number als Ziffernfolge der
  879.     Basis ibase und liefert den entsprechende Wert in der Basis obase.
  880.     Der erzeugte String zur Basis obase wird in einem statischen
  881.     Puffer angelegt.üstrcnvulÇinterpretiertdeninnumberenthaltenen
  882. WertalsunsignedLong.
  883.  
  884. ü
  885. RETURNWERT
  886. Ç
  887.     Die Adresse der (statischen) Zeichenkette wird zurückgeliefert.
  888.  
  889.  
  890. üBEMERKUNGÇ
  891.  
  892.     Der statische Puffer wird bei jedem Aufruf überschrieben.
  893.  
  894.  
  895. üBEISPIELÇ
  896.  
  897.     #include <stdio.h>
  898.     #include <libstr.inc>
  899.  
  900. /*cbase-ZahleinerBasiszueineranderenBasisdarstellen*/
  901.  
  902.     VOID main (argc, argv)
  903.     WORD argc;
  904.     BYTE *argv[];
  905.     {
  906.        WORD ibase = 10, obase = 10;
  907.        WORD nibase, nobase;
  908.        BYTE zahl[100];
  909.        BYTE *bp;
  910.   
  911.  
  912.  
  913.  
  914.  
  915.   
  916. ê______________________________________________________________________
  917. êlibstr                          strcnvl                         libstr
  918. Ç
  919.  
  920.  
  921.        if (argc == 1)
  922.        {
  923.           fprintf (stderr, "usage: cbase zahl[,ibase[,obase]] ...\n");
  924.           exit (-1);
  925.        }
  926.  
  927.        while (*++argv)
  928.        {
  929.           if (!(bp = strtok (*argv, ",")))
  930.              break;
  931.           strcpy (zahl, bp);
  932.           if ((bp = strtok (NULP, ",")))
  933.           {
  934.              nibase = (WORD) strtol (bp, (BYTE *) NULP, 10);
  935.              if (nibase < 1 || nibase > 38)
  936.              {
  937.                 fprintf (stderr, "cbase: Falsche ibase %d\n", nibase);
  938.                 continue;
  939.              }
  940.              ibase = nibase;
  941.              if ((bp = strtok (NULP, ",")))
  942.              {
  943.                 nobase = (WORD) strtol (bp, (BYTE *) NULP, 10);
  944.                 if (nobase < 1 || nobase > 38)
  945.                 {
  946.                    fprintf (stderr, "cbase: Falsche obase %d\n",
  947.  nobase);
  948.                    continue;
  949.                 }
  950.                 obase = nobase;
  951.              }
  952.           }
  953.           printf ("%s\n", strcnvl (zahl, ibase, obase));
  954.        }
  955.     }
  956.   
  957.  
  958. üDATEIENÇ
  959.  
  960.     libstr.inc
  961.     libstr.a
  962.  
  963.  
  964. üREFERENZÇ
  965.  
  966.     strtol, strtoul, strtof, strfroml,strfromul
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980. ê______________________________________________________________________
  981. êlibstrstrcpy,strncpy,strn0cpy,strcpyn,strncpyn,strpcpylibstr
  982.  
  983. ü
  984.  
  985. NAME
  986. Ç
  987. à    strcpy,strncpy,strn0cpy,
  988. strcpyn,strncpyn,strpcpy -Stringsmiteinanderkopieren
  989. ü
  990.  
  991. SYNTAX
  992.  
  993. Ç    #include <libstr.inc>
  994.  
  995.     BYTE *strcpy (dest, source)
  996.     BYTE *dest, *source;
  997.  
  998.     BYTE *strncpy (dest, source, limit)
  999.     BYTE *dest, *source;
  1000.     WORD limit;
  1001.  
  1002.     BYTE *strn0cpy (dest, source, limit)
  1003.     BYTE *dest, *source;
  1004.     WORD limit;
  1005.  
  1006.     BYTE *strcpyn (dest, source1, source2, ..., NULP)
  1007.     BYTE *dest, *source1, *source2, ...;
  1008.  
  1009.     BYTE *strncpyn (dest, limit,source1, source2, ..., NULP)
  1010.     BYTE *dest, *source1, *source2, ...;
  1011. WORDlimit;
  1012.  
  1013.     BYTE *strpcpy (dest, start, end)
  1014.     BYTE *dest;
  1015.     BYTE *start;
  1016.     BYTE *end;
  1017.  
  1018. ü
  1019. BESCHREIBUNG
  1020.  
  1021. Ç    üstrcpyÇkopiertdenInhaltderZeichenkette sourceandieAdresse
  1022. derZeichenkettedest.ü strncpyÇ kopiert max. limit Zeichen der
  1023.  Zeichenkette source an die Adresse der Zeichenkette dest.üstrn0cpyÇ
  1024. arbeitetwiestrncpy,hängtjedochein'\0'andasEndevondest.
  1025.     Die Zeichenkette source1 und eventuell folgende Zeichenketten 
  1026.     source2, ... bis zur leeren Zeichenkette NULP (muss immer letzter
  1027.     Parameter sein!) werden durchüstrcpynÇalle miteinander verkettet,
  1028.  an die Adresse der Zeichenkette dest kopiert.
  1029. üstrncpynÇkopiertmaximaldieerstenlimitZeichenjederZeichen-
  1030. ketteandieAdressevondest. üstrpcpyÇkopiertdenInhaltder
  1031. Teilzeichenkette vonsource,diesichzwischendenbeidenAdressen
  1032. startundendbefindet,nachdest.
  1033.  
  1034. ü
  1035. RETURNWERT
  1036. Ç
  1037.     Es wird die Adresse der Ziel-Zeichenkette dest zurückgeliefert.
  1038.  
  1039.  
  1040. üBEMERKUNGÇ
  1041.  
  1042.     keine
  1043.  
  1044. ê______________________________________________________________________
  1045. êlibstrstrcpy,strncpy,strn0cpy,strcpyn,strncpyn,strpcpylibstr
  1046.  
  1047. ü
  1048.  
  1049. DATEIEN
  1050. Ç
  1051.     libstr.inc
  1052.     libstr.a
  1053.  
  1054.  
  1055. üREFERENZÇ
  1056.  
  1057.     strcat,strncat,strcatn,strncatn
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108. ê______________________________________________________________________
  1109. êlibstrstrcspn,stricspn,strspn,strispnlibstr
  1110. Ç
  1111.  
  1112.  
  1113. üNAMEÇ
  1114.  
  1115.     àstrcspn,stricspn,
  1116. strspn,strispn - Bestimmte Zeichen einer Zeichenkette zählen
  1117. Ç
  1118.  
  1119. üSYNTAXÇ
  1120.  
  1121.     #include <libstr.inc>
  1122.  
  1123.     WORD strcspn (str, set)
  1124.     BYTE *str;
  1125.     BYTE *set;
  1126.  
  1127.     WORD stricspn (str, set)
  1128.     BYTE *str;
  1129.     BYTE *set;
  1130.  
  1131.     WORD strspn (str, set)
  1132.     BYTE *str;
  1133.     BYTE *set;
  1134.  
  1135.     WORD strispn (str, set)
  1136.     BYTE *str;
  1137.     BYTE *set;
  1138. ü
  1139.  
  1140. BESCHREIBUNG
  1141. Ç
  1142.     üstrcspnÇ zählt die Anzahl der Zeichen der Zeichenkette str, die 
  1143.     in der Menge set vorkommenunterBerücksichtigungderGroß-/
  1144. Kleinschreibung.üstricspnÇermitteltdieAnzahlderZeichenohne
  1145. BerücksichtigungderGroß-/Kleinschreibung. üstrspnÇundüstrispnÇ
  1146. arbeitenanalogdazu,liefertjedochdieAnzahlderZeichen,die
  1147. nichtinderMengesetvorkommen.
  1148.  
  1149.  
  1150. üRETURNWERTÇ
  1151.  
  1152.     Es wird die Anzahl der Zeichen zurückgeliefert.
  1153.  
  1154. ü
  1155. BEMERKUNGÇ
  1156.  
  1157. keine
  1158.  
  1159. ü
  1160. DATEIEN
  1161. Ç
  1162.     libstr.inc
  1163.     libstr.a
  1164.  
  1165. ü
  1166. REFERENZÇ
  1167.  
  1168. 
  1169.  
  1170.  
  1171.  
  1172. ê______________________________________________________________________
  1173. êlibstrstrctrlibstr
  1174.  
  1175. Ç
  1176. ü
  1177. NAME
  1178. Ç
  1179. à    strctr  -  Zeichenkette zentrieren
  1180.  
  1181. Ç
  1182. üSYNTAXÇ
  1183.  
  1184.     #include <libstr.inc>
  1185.  
  1186.     BYTE *strctr (str)
  1187.     BYTE *str;
  1188.  
  1189. ü
  1190. BESCHREIBUNG
  1191. Ç
  1192.    ü strctrÇ zentriert den String str durch Ausbalancierenderäußeren
  1193.  Leerzeichen, falls vorhanden(Rotation).
  1194.  
  1195. ü
  1196. RETURNWERT
  1197.  
  1198. Ç    Die Adresse der zentrierten Zeichenkette str wird zurückgeliefert.
  1199.  
  1200.  
  1201. üBEMERKUNG
  1202. Ç
  1203.     keine
  1204.  
  1205.  
  1206. üDATEIENÇ
  1207.  
  1208.     libstr.inc
  1209.     libstr.a
  1210.  
  1211.  
  1212. üREFERENZÇ
  1213.  
  1214.     stradjl, stradjr,strnrotr,strnrotl
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236. ê______________________________________________________________________
  1237. êlibstrstrdup,strnduplibstr
  1238.  
  1239.  
  1240. ü
  1241. NAME
  1242. Ç
  1243. à    strdup,strndup - Duplikat einer Zeichenkette erstellen
  1244.  
  1245. ü
  1246. SYNTAX
  1247.  
  1248. Ç    #include <libstr.inc>
  1249.  
  1250.     BYTE *strdup (str)          
  1251.     BYTE *str;
  1252.  
  1253.     BYTE *strndup (str,limit)          
  1254.     BYTE *str;
  1255. WORDlimit;
  1256.  
  1257.  
  1258. üBESCHREIBUNG
  1259.  
  1260. Ç    BeiüstrdupÇwirddie Zeichenkette str in einen dynamisch erzeug-
  1261. ten Puffer kopiert. Die Zeichenkette, die zurückgeliefert wird,
  1262.  hat die gleiche Länge wie die übergebene Zeichenkette.
  1263. üstrndupÇhingegenlieferteineKopiederTeilzeichenkettemitden
  1264. maximalerstenlimitZeichenvonstr.
  1265.  
  1266. ü
  1267. RETURNWERT
  1268. Ç
  1269.     Es wird die Adresse der kopierten Zeichenkette zurückgeliefert
  1270.     oder NULP, falls kein Speicherplatz fuer die Zeichenkette reser-
  1271. viertwerden kann (malloc).
  1272.  
  1273.  
  1274. üBEMERKUNG
  1275.  
  1276. ÇWennlimit>strlen(str)ist,dannwirdtrotzdemeinBereich
  1277. vonlimitZeichenreserviert.
  1278.  
  1279.  
  1280. üDATEIEN
  1281.  
  1282. Ç    libstr.inc
  1283.     libstr.a   
  1284.                
  1285.  
  1286. üREFERENZÇ
  1287.  
  1288.     strlen, strcpy, malloc
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296. ê
  1297. Ç
  1298.  
  1299.  
  1300. ê______________________________________________________________________Ç
  1301. êlibstrstremp,strnemplibstr
  1302. Ç
  1303.  
  1304. ü
  1305. NAME
  1306. Ç
  1307.     àstremp,strnemp - Zeichenkette auf Leerzeichen untersuchenÇ
  1308.  
  1309. à
  1310. üSYNTAX
  1311. Ç
  1312.     #include <libstr.inc>
  1313.  
  1314.     BOOL stremp (str)
  1315.     BYTE *str;
  1316.  
  1317.     BOOL strnemp (str,limit)
  1318.     BYTE *str;
  1319.  
  1320. ü
  1321. BESCHREIBUNG
  1322. Ç
  1323.    ü strempÇ testet, ob die Zeichenkette str nur Leerzeichen und tabs
  1324.     enthält.
  1325. üstrnempÇuntersuchtmaximaldieerstenlimitZeichenderZeichen-
  1326. kettestraufLeerzeichen.
  1327.  
  1328. ü
  1329. RETURNWERT
  1330. Ç
  1331.   TRUE, wenn die Zeichenkette str nur Leerzeichen oder tabs enthält,
  1332.  FALSE sonst.
  1333.  
  1334.  
  1335. üBEMERKUNG
  1336. Ç
  1337. keine
  1338.  
  1339.  
  1340. üDATEIENÇ
  1341.  
  1342.     libstr.inc
  1343.     libstr.a
  1344.  
  1345.  
  1346. üREFERENZÇ
  1347.  
  1348.     
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364. ê______________________________________________________________________
  1365. êlibstrstrfnd,strifndlibstr
  1366. Ç
  1367.  
  1368. ü
  1369. NAME
  1370. Ç
  1371.     àstrfnd,strifnd - Zeichenkette in einerZeichenkettenmengesuchenÇ
  1372.  
  1373.  
  1374. üSYNTAXÇ
  1375.  
  1376.     #include <libstr.inc>
  1377.  
  1378.     WORDstrfnd (pool, str)
  1379.     BYTE *pool;
  1380.     BYTE *str;
  1381.  
  1382.     WORDstrifnd (pool, str)
  1383.     BYTE *pool;
  1384.     BYTE *str;
  1385.  
  1386. ü
  1387. BESCHREIBUNG
  1388.  
  1389. Ç    üstrfndÇ durchsucht einen pool von Strings nach str. Ein pool ist
  1390.  eine Aneinanderreihung von nichtleeren Strings. Das Ende wird
  1391.  durch einen leeren String markiert.
  1392.          Bsp: str0\0str1\0str2\0str3\0...strn\0\0.
  1393.     Findet üstrfndÇ einen der Strings im pool, so liefert üstrfndÇ die
  1394.  Nummer des Strings (der erste hat die Nummer 0).
  1395. üstrifndÇarbeitetwieüstrfndÇ,jedochohneBerücksichtigungder
  1396. Groß-/Kleinschreibung.
  1397.  
  1398.     
  1399. üRETURNWERTÇ
  1400.  
  1401.     Nummer des gefundenen Strings oder sollte üstrfndÇ einen (oderü
  1402. Ç mehrere) String finden die üstrfndÇ nur teilweise vergleichen kann,
  1403.  das heißt, üstrfndÇ findet str zwar noch im pool, str ist aber
  1404.  kürzer als der String im pool, so wird -1 geliefert.
  1405.     Findet üstrfndÇ keinen passenden String im pool, so wird -2 ge-
  1406. liefert.
  1407.  
  1408. ü
  1409. BEMERKUNG
  1410.  
  1411. Çkeine
  1412.  
  1413. ü
  1414. DATEIEN
  1415. Ç
  1416.     libstr.inc
  1417.     libstr.a
  1418.  
  1419. ü
  1420. REFERENZÇ
  1421.  
  1422.     strmat, strimat,strnmat,strnimat
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428. ê______________________________________________________________________
  1429. êlibstr                    strfroml,strfromul                   libstrÇ
  1430.  
  1431.  
  1432. ü
  1433. NAME
  1434. à
  1435.     strfroml,strfromul - Longwert in String wandeln
  1436.  
  1437. Ç
  1438. üSYNTAXÇ
  1439.  
  1440.     #include <libstr.inc>
  1441.  
  1442.     BYTE *strfroml (number, base)
  1443.     LONG number;
  1444.     WORD base;
  1445.  
  1446.     BYTE *strfromul (number, base)
  1447.     ULONG number;
  1448.     WORD base;
  1449.  
  1450. ü
  1451. BESCHREIBUNG
  1452. Ç
  1453.     üstrfromlÇ liefert den Wert number als String in der Basis base.
  1454.     Der String wird in einem statischen Puffer aufbereitet.üstrfromulÇ
  1455. behandeltdenWertinnumberalsunsignedLong.
  1456.  
  1457.  
  1458. üRETURNWERTÇ
  1459.  
  1460.     Die Adresse der (statischen) Zeichenkette wird zurückgeliefert.
  1461.  
  1462. ü
  1463. BEMERKUNG
  1464. Ç
  1465.     Der statische Puffer wird bei jedem Aufruf überschrieben.
  1466.  
  1467. ü
  1468. DATEIEN
  1469.  
  1470. Ç    libstr.inc
  1471.     libstr.a
  1472.  
  1473.  
  1474. üREFERENZÇ
  1475.  
  1476.     strtol, strtoul, strtof, strconvl,strcnvul
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491. ê
  1492. ______________________________________________________________________
  1493. êlibstr                      strinv, strninv                     libstr
  1494. Ç
  1495.  
  1496. ü
  1497. NAME
  1498. à
  1499.     strinv, strninv - Groß- in Kleinbuchstaben wandeln und umgekehrt
  1500. Ç
  1501.  
  1502. üSYNTAXÇ
  1503.  
  1504.     #include <libstr.inc>
  1505.  
  1506.     BYTE *strinv (str)
  1507.     BYTE *str;
  1508.  
  1509.     BYTE *strninv (str, limit)
  1510.     BYTE *str;
  1511.     WORD limit;
  1512.  
  1513. ü
  1514. BESCHREIBUNG
  1515. Ç
  1516.    ü strinvÇ wandelt alle (ASCII!) Kleinbuchstaben der Zeichenkette str
  1517.     in Großbuchstaben und alle Großbuchstaben in Kleinbuchstaben um.
  1518.     üstrninvÇ betrachtet dabei die maximal ersten limit Zeichen von str.
  1519.  
  1520. ü
  1521. RETURNWERT
  1522. Ç
  1523.     Die Adresse der geänderten Zeichenkette str wird zurückgeliefert.
  1524.  
  1525. ü
  1526. BEMERKUNG
  1527. Ç
  1528.     keine
  1529.  
  1530.  
  1531. üDATEIENÇ
  1532.  
  1533.     libstr.inc
  1534.     libstr.a
  1535.  
  1536.  
  1537. üREFERENZÇ
  1538.  
  1539.     strlwr, strnlwr, strlwrg, strnlwrg, strupr, strnupr, strwupr,
  1540.     struprg, strnuprg
  1541.  
  1542. ê
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556. ______________________________________________________________________
  1557. êlibstrstrlenlibstr
  1558.  
  1559. ü
  1560.  
  1561. NAMEÇ
  1562.  
  1563. à    strlen  -  Länge einer Zeichenkette berechnen 
  1564.  
  1565. ü
  1566. SYNTAX
  1567. Ç
  1568.     #include <libstr.inc>
  1569.  
  1570.     WORD strlen (str)           
  1571.     BYTE *str;
  1572.  
  1573. ü
  1574. BESCHREIBUNG
  1575. Ç
  1576.     üstrlenÇberechnetdie Länge der Zeichenkette str =Anzahlder
  1577. ZeichenohnedemNullzeichen.
  1578.  
  1579. ü
  1580. RETURNWERT
  1581. Ç
  1582.     Es wird die Länge der Zeichenkette zurückgeliefert.
  1583.  
  1584. ü
  1585. BEMERKUNG
  1586.  
  1587. Çkeine
  1588.  
  1589. ü
  1590. DATEIEN
  1591. Ç
  1592.     libstr.inc
  1593.     libstr.a
  1594.  
  1595.  
  1596. üREFERENZÇ
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620. ê______________________________________________________________________
  1621. êlibstrstrlwr,strnlwr,strlwrg,strnlwrglibstr
  1622.  
  1623. à
  1624. Ç
  1625. üNAMEÇ
  1626.  
  1627. à    strlwr,strnlwr,
  1628. strlwrg,strnlwrg - Zeichenkette in Kleinbuchstaben wandeln
  1629.  
  1630. ü
  1631. SYNTAX
  1632. Ç
  1633.     #include <libstr.inc>
  1634.  
  1635.     BYTE *strlwr (str)
  1636.     BYTE *str;
  1637.  
  1638.     BYTE *strnlwr (str,limit)
  1639.     BYTE *str;
  1640. WORDlimit;
  1641.  
  1642.     BYTE *strlwrg (str)
  1643.     BYTE *str;
  1644.  
  1645.     BYTE *strnlwrg (str,limit)
  1646.     BYTE *str;
  1647. WORDlimit;
  1648.  
  1649.  
  1650. üBESCHREIBUNGÇ
  1651.  
  1652.     üstrlwrÇwandeltalle(ASCII!)BuchstabenderZeichenkettestrin
  1653. Kleinbuchstabenum.üstrnlwrÇbetrachtetdabeidiemaximalersten
  1654. limitZeichenvonstr.BeiüstrlwrgÇwerdenauchdiedeutschen
  1655. Umlaute(Ä,Ö,Ü)durchä,ö,üersetzt.üstrnlwrgÇbetrachtet
  1656. wiederumnurdiemaximalerstenlimitZeichenvonstr.
  1657.  
  1658. ü
  1659. RETURNWERT
  1660. Ç
  1661.     Die Adresse der geändertenZeichenkette str wird zurückgeliefert.
  1662.  
  1663.  
  1664. üBEMERKUNG
  1665. Ç
  1666. keine
  1667.  
  1668.  
  1669. üDATEIENÇ
  1670.  
  1671.     libstr.inc
  1672.     libstr.a
  1673.  
  1674.  
  1675. üREFERENZÇ
  1676.  
  1677.     strupr, strnupr, strwupr, struprg,strnuprg
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684. ê______________________________________________________________________
  1685. êlibstrstrmat,strimat,strnmat,strnimatlibstr
  1686. Ç
  1687.  
  1688.  
  1689. üNAMEÇ
  1690. à
  1691.     strmat,strimat,strnmat,strnimat -  zweiZeichenketten matchen
  1692.  
  1693. ü
  1694. SYNTAX
  1695. Ç
  1696.     #include <libstr.inc>
  1697.  
  1698.     WORD strmat (s, m)
  1699.     BYTE *s;
  1700.     BYTE *m;
  1701.  
  1702.     WORD strimat (s, m)
  1703.     BYTE *s;
  1704.     BYTE *m;
  1705.  
  1706.     WORD strnmat (s, m)
  1707.     BYTE *s;
  1708.     BYTE *m;
  1709.  
  1710.     WORD strnimat (s, m)
  1711.     BYTE *s;
  1712.     BYTE *m;
  1713.  
  1714. ü
  1715. BESCHREIBUNG
  1716.  
  1717. Ç    üstrmaÇt versuchtdieZeichenkettesmitdemMustermzumatchen.
  1718.     üstrimatÇmatchedohneGroß-/Kleinbuchstabenzuunterscheiden.ü
  1719. strnmatÇerkenntdabeinebendemNullbyteaucheinNewline'\n'als
  1720. Stringende.üstrnimatÇarbeitetanalog,jedochohneGroß-/Kleinbuch-
  1721. stabenzuunterscheiden.
  1722.  
  1723.     üFolgende matches sind möglich:Ç
  1724.  
  1725.         ? : matched ein bel. Zeichen mit 0.
  1726.         * : matched eine bel. Zeichenkette mit 0.
  1727.         . : matched eine Anzahl gleicher Zeichen mit 0.
  1728.         % : matched eine bel. Ziffer mit 0.
  1729.         @ : matched einen bel. Kleinbuchstaben mit 0.
  1730.         $ : matched einen bel. Grossbuchstaben mit 0.
  1731.         & : matched einen bel. Buchstaben mit 0.
  1732.         ! : matched ein bel. Metazeichen mit 0.
  1733.         \\: das folgende Metazeichen verliert seine Wirkung.
  1734.      [abc]: das zu matchende Zeichen muss a oder b oder c
  1735.             sein.
  1736.      [-ab]: das zu matchende Zeichen muss ungleich a und
  1737.             ungleich b sein.                            
  1738.      [a:z]: das zu matchende Zeichen muss zwischen a und
  1739.             z (einschliesslich) liegen (a <= z <= b).
  1740.     [-a:z]: das zu matchende Zeichen darf nicht zwischen
  1741.             a und z liegen.  
  1742. ü
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748. ê______________________________________________________________________
  1749. êlibstrstrmat,strimat,strnmat,strnimatlibstr
  1750. Ç
  1751. ü
  1752.  
  1753.     Beispiele: 
  1754. Ç
  1755.             s             m       
  1756.          eeefeee       eeefeee    
  1757.          eeefeee       ee??eee    
  1758.          eeefeee       ee*        
  1759.          ee*           ee\\*      
  1760.          eeefeee       ee*f*      
  1761.          eeefeee       eee[a:z]e* 
  1762.          eeefeee       eee[-g:z]e*
  1763.          eeefeee       eee[afzg]e*
  1764.          eeefeee       eee[-abc]e*
  1765.          eeeeeff       e.ff      
  1766.  
  1767. ü
  1768. RETURNWERT
  1769. Ç
  1770.     0, bei Gleichheit, bzw. wenn der String s durch m gematched werden
  1771.     kann, sonst -999 bei falschem Match (Metazeichen!) oder die Dif-
  1772. ferenzdes letzten verglichenen Zeichenpaares von s und m.
  1773.  
  1774.  
  1775. üBEMERKUNGÇ
  1776.  
  1777.     Das Metazeichen '.' darf nicht am Anfang des Strings m stehen,
  1778.     da ja (s-1) dann noch nicht existiert.
  1779. BeiüstrimatÇundüstrnimatÇwerdennurdieASCII-Buchstabenohne
  1780. casebetrachtet,keineUmlaute.
  1781.  
  1782.  
  1783. üDATEIENÇ
  1784.  
  1785.     libstr.inc
  1786.     libstr.a
  1787.  
  1788.  
  1789. üREFERENZÇ
  1790.  
  1791.     strcmp, strncmp, stricmp, strnicmp
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812. ê______________________________________________________________________Ç
  1813. êlibstrstrpbrk,stripbrk,strrpbrk,strirpbrklibstr
  1814. Ç
  1815.  
  1816. ü
  1817. NAME
  1818. à
  1819.     strpbrk,stripbrk,
  1820. strrpbrk,strirpbrk - TeileinerZeichenkette suchen
  1821.  
  1822. ü
  1823. SYNTAX
  1824. Ç
  1825.     #include <libstr.inc>
  1826.  
  1827.     BYTE *strpbrk (str, set)
  1828.     BYTE *str;
  1829.     BYTE *set;
  1830.  
  1831.     BYTE *stripbrk (str, set)
  1832.     BYTE *str;
  1833.     BYTE *set;
  1834.  
  1835.     BYTE *strrpbrk (str, set)
  1836.     BYTE *str;
  1837.     BYTE *set;
  1838.  
  1839.     BYTE *strirpbrk (str, set)
  1840.     BYTE *str;
  1841.     BYTE *set;
  1842.  
  1843.  
  1844. üBESCHREIBUNGÇ
  1845.  
  1846.    ü strpbrkÇ liefert die Adresse der Teil-Zeichenkette von strzurück,
  1847.  deren erstes Zeichen im set vorkommt. Gesucht wird ab dem ersten
  1848.  Zeichen des Strings.üstripbrkÇunterscheidetdabeinichtzwischen
  1849.  Groß-/Kleinbuchstaben.üstrrpbrkÇundüstrirpbrkÇarbeitenanalog
  1850. dazu,beginnenjedochmitderSucheabdemletztenZeichenvon
  1851. str.
  1852.  
  1853.  
  1854. üRETURNWERTÇ
  1855.  
  1856.     Die Adresse der Teil-Zeichenkette von str oder NULP, falls keines
  1857.     der Zeichen von set in str vorhanden ist.
  1858.  
  1859.  
  1860. üBEMERKUNG
  1861.  
  1862. ÇBeiüstripbrkÇundüstrirpbrkÇwerdennurdieASCIIBuchstabenohne
  1863. casebetrachtet.
  1864.  
  1865.  
  1866. üDATEIENÇ
  1867.  
  1868.     libstr.inc
  1869.     libstr.a
  1870.  
  1871.  
  1872. üREFERENZÇ
  1873.  
  1874. strstr,stristr,strrstr,strirstr,strchr,strichr,strrchr
  1875.  
  1876. ê______________________________________________________________________
  1877. êlibstrstrpos,stripos,strrpos,strirposlibstr
  1878.  
  1879. Ç
  1880.  
  1881. üNAME
  1882. Ç
  1883. à    strpos,stripos,
  1884. strrpos,strirpos - Position eines Zeichens imString suchen
  1885.  
  1886. Ç
  1887. üSYNTAXÇ
  1888.  
  1889.     #include <libstr.inc>
  1890.  
  1891.     WORD strpos (str, symbol)
  1892.     BYTE *str;
  1893.     BYTE symbol;
  1894.  
  1895.     WORD stripos (str, symbol)
  1896.     BYTE *str;
  1897.     BYTE symbol;
  1898.  
  1899.     WORD strrpos (str, symbol)
  1900.     BYTE *str;
  1901.     BYTE symbol;
  1902.  
  1903.     WORD strirpos (str, symbol)
  1904.     BYTE *str;
  1905.     BYTE symbol;
  1906.  
  1907.  
  1908. üBESCHREIBUNG
  1909.  
  1910. Ç    üstrposÇsuchtdie erste Position des Zeichens symbol innerhalb der
  1911.  Zeichenkette str ausgehend vom Stringanfang.üstriposÇdifferenziert
  1912. beiderSuchenichtzwischenGroß-/Kleinbuchstaben(ASCII).
  1913. üstrrposÇundüstrirposÇarbeitenanalog,suchenjedochabdemString-
  1914. andevonstr.
  1915.  
  1916.  
  1917. üRETURNWERT
  1918.  
  1919. Ç    Die Position des Zeichens symbol wird zurückgeliefert oder -1,
  1920.     falls symbol nicht in der Zeichenkette str vorhanden ist. Dabei
  1921.  bedeutet 0 die erste Position!
  1922.     
  1923. ü
  1924. BEMERKUNG
  1925. Ç
  1926. keine
  1927.  
  1928. ü
  1929. DATEIENÇ
  1930.  
  1931.     libstr.inc
  1932.     libstr.a
  1933.  
  1934.  
  1935. üREFERENZÇ
  1936.  
  1937.     strchr, strrchr, strichr, strirchr
  1938.  
  1939.  
  1940. ê______________________________________________________________________
  1941. êlibstrstrrevlibstr
  1942.  
  1943.  
  1944. ü
  1945. NAME
  1946. à
  1947.     strrev - Eine Zeichenkette umdrehen (an sich selbst spiegeln)
  1948.  
  1949. Ç
  1950. üSYNTAXÇ
  1951.  
  1952.     #include <libstr.inc>
  1953.  
  1954.     BYTE *strrev (str)         
  1955.     BYTE *str;
  1956.  
  1957.  
  1958. üBESCHREIBUNGÇ
  1959.  
  1960.     üstrrevÇliefertdie Zeichenkette str an sich selbst gespiegelt zu-
  1961. rück,d.h. das erste Zeichen wird zum letzten und das letzte zum
  1962.  ersten.
  1963.  
  1964.  
  1965. üRETURNWERTÇ
  1966.  
  1967.     Es wird die Adresse der gespiegelten Zeichenkette zurückgeliefert.
  1968.  
  1969.  
  1970. üBEMERKUNG
  1971. Ç
  1972. keine
  1973.  
  1974.  
  1975. üDATEIENÇ
  1976.  
  1977.     libstr.inc
  1978.     libstr.a
  1979.  
  1980.  
  1981. üREFERENZÇ
  1982.  
  1983. ê
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004. ______________________________________________________________________
  2005. êlibstr           strrotl, strrotr, strnrotl, strnrotr           libstr
  2006. Ç
  2007.  
  2008.  
  2009. üNAMEÇ
  2010. à
  2011.     strrotl, strrotr, strnrotl, strnrotr - Zeichenkette rotieren
  2012.  
  2013. Ç
  2014. üSYNTAXÇ
  2015.  
  2016.     #include <libstr.inc>
  2017.  
  2018.     BYTE *strrotl (str)
  2019.     BYTE *str;
  2020.  
  2021.     BYTE *strrotr (str)
  2022.     BYTE *str;
  2023.  
  2024.     BYTE *strnrotl (str, limit)
  2025.     BYTE *str;
  2026.  
  2027.     BYTE *strnrotr (str, limit)
  2028.     BYTE *str;
  2029.     
  2030.  
  2031. üBESCHREIBUNGÇ
  2032.  
  2033.     üstrrotlÇ rotiert die Zeichenkette str um ein Zeichen nach links,
  2034.     üstrrotrÇ um ein Zeichen nach rechts. üstrnrotlÇ und üstrnrotrÇ arbeiten
  2035.     analog, rotieren str jedoch um maximal limit Zeichen.
  2036.     
  2037.  
  2038. üRETURNWERT
  2039.  
  2040. Ç    Es wird die Adresse der formatierten Zeichenkette zurückgeliefert.
  2041.  
  2042.  
  2043. üBEMERKUNGÇ
  2044.  
  2045.     Ist limit = strlen (str), so ist der rotierte String str wieder
  2046.     gleich dem nicht rotierten.
  2047.     
  2048.  
  2049. üDATEIENÇ
  2050.  
  2051.     libstr.inc
  2052.     libstr.a
  2053.  
  2054. ü
  2055. REFERENZ
  2056. Ç
  2057.     strlen, stradj, strctr
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066. ê
  2067.  
  2068. ______________________________________________________________________
  2069. êlibstrstrrpl,strirpl,strnrpl,strnirpllibstr
  2070.  
  2071. Ç
  2072. ü
  2073. NAME
  2074. Ç
  2075. à    strrpl,strirpl,
  2076. strnrpl,strnirpl - Zeichenmuster in einer Zeichenkette ersetzen
  2077.  
  2078. Ç
  2079. üSYNTAX
  2080.  
  2081. Ç    #include <libstr.inc>
  2082.  
  2083.     WORD strrpl (string, ptrn, rpl)   
  2084.     BYTE *string, *ptrn, *rpl;
  2085.  
  2086.     WORD strirpl (string, ptrn, rpl)   
  2087.     BYTE *string, *ptrn, *rpl;
  2088. à
  2089. Ç    WORD strnrpl (string, ptrn, rpl,limit)   
  2090.     BYTE *string, *ptrn, *rpl;
  2091. WORDlimit;
  2092.  
  2093.     WORD strnirpl (string, ptrn, rpl,limit)   
  2094.     BYTE *string, *ptrn, *rpl;
  2095. WORDlimit;
  2096. ê
  2097.  
  2098. üBESCHREIBUNG
  2099.  
  2100. Ç    üstrrplÇ versucht in der Zeichenkette string alle Zeichenmuster ptrn
  2101.     durch rpl zu ersetzen.üstrirplÇvernachlässigtbeiderSuchevon
  2102. ptrndieUnterscheidungvonGroß-/Kleinbuchstaben.üstrnrplÇund
  2103. üstrnirplÇersetzendiemaximalerstenlimitZeichenmusterptrn.
  2104.  
  2105.  
  2106. üRETURNWERTÇ
  2107.  
  2108.     Es wird die Anzahl der Ersetzungen von rpl zurückgeliefert.
  2109.  
  2110. ü
  2111. BEMERKUNGÇ
  2112.  
  2113. keine
  2114.  
  2115.  
  2116. üDATEIENÇ
  2117.  
  2118.     libstr.inc
  2119.     libstr.a   (strstr, strlen, stradjl, strncpy)
  2120.  
  2121.  
  2122. üREFERENZÇ
  2123.  
  2124.     strstr, strlen, stradjl, strncpyê
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132. ______________________________________________________________________
  2133. êlibstrstrset,strnset,strsset,strspc,strnspc,memsetlibstr
  2134.  
  2135. Ç
  2136.  
  2137. üNAMEÇ
  2138. à
  2139.     strset,strnset,strsset,strspc,
  2140. strnspc,memset - Zeichen eines Strings durch e. Zeichen ersetzen
  2141.  
  2142. Ç
  2143. üSYNTAXÇ
  2144.  
  2145.     #include <libstr.inc>
  2146.  
  2147.     BYTE *strset (str, chr)
  2148.     BYTE *str;
  2149.     BYTE chr;
  2150.  
  2151.     BYTE *strnset (str, chr, limit)
  2152.     BYTE *str;
  2153.     BYTE chr;
  2154.     WORD limit;
  2155.  
  2156.     BYTE *strsset (str1, str2)
  2157.     BYTE *str1;
  2158.     BYTE *str2;
  2159.  
  2160.     BYTE *strspc (str)
  2161.     BYTE *str;
  2162.  
  2163.     BYTE *strnspc (str, limit)
  2164.     BYTE *str;
  2165.     WORD limit;
  2166.  
  2167.     BYTE *memset (str, chr, limit)
  2168.     BYTE *str;
  2169.     BYTE chr;
  2170.     WORD limit;
  2171.  
  2172. ü
  2173. BESCHREIBUNGÇ
  2174.  
  2175.     üstrsetÇersetztalleZeichen der Zeichenkette str durch das Zeichen
  2176.  chr.üstrnsetÇersetztdiemaximalerstenlimitZeichenvonstr
  2177. durchchr.üstrspcÇersetztalleZeichenvonstrdurchLeerzeichen.
  2178. üstrnspcÇhingegenersetztnurdiemaximalerstenlimitZeichenvon
  2179. strdurchLeerzeichen. ümemsetÇarbeitetwieüstrnsetÇ,beachtetje-
  2180. dochnichtdasNullzeichen'\0'alsEnde,sondernersetztêgenauÇ
  2181. limitZeichen.üstrssetÇ füllt den String str1 solange mit der
  2182.  Zeichenkette str2, bis das Ende von str1 erkannt wurde.
  2183.  
  2184.  
  2185.  
  2186. üRETURNWERTÇ
  2187.  
  2188.     Es wird die Adresse der Zeichenkette str (bzw.str1)zurückgelie-
  2189. fert.
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196. ê______________________________________________________________________
  2197. êlibstrstrset,strnset,strsset,strspc,strnspc,memsetlibstr
  2198. Ç
  2199.  
  2200.  
  2201. üBEMERKUNGÇ
  2202.  
  2203. Beidenstr...-FunktionenwirddasNullzeichenamEndevonstr
  2204. nichtersetzt.
  2205.  
  2206.  
  2207. üDATEIENÇ
  2208.  
  2209.     libstr.inc
  2210.     libstr.a
  2211.  
  2212.  
  2213. üREFERENZÇ
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260. ê______________________________________________________________________
  2261. êlibstr          strsort, strisort, strrsort, strirsort          libstrÇ
  2262.  
  2263.  
  2264.  
  2265. üNAMEÇ
  2266.  
  2267.    à strsort, strisort,
  2268.     strrsort, strirsort - Zeichen e. Zeichenkette sortierenÇ
  2269.  
  2270.  
  2271. üSYNTAXÇ
  2272.  
  2273.     #include <libstr.inc>
  2274.  
  2275.     BYTE *strsort (str)
  2276.     BYTE *str;
  2277.  
  2278.     BYTE *strisort (str)
  2279.     BYTE *str;
  2280.  
  2281.     BYTE *strrsort (str)
  2282.     BYTE *str;
  2283.  
  2284.     BYTE *strirsort (str)
  2285.     BYTE *str;
  2286.  
  2287.  
  2288. üBESCHREIBUNGÇ
  2289.  
  2290.     üstrsortÇ sortiert die Zeichen der Zeichenkette str nach ASCII-
  2291.     Ordnung und liefert einen Pointer auf die sortierte Zeichenkette
  2292.     str zurück. Bei üstrisortÇ wird nicht zwischen Groß-/Kleinbuchstaben
  2293.     unterschieden.ü strrsortÇ und üstrirsortÇ haben die gleiche Funktiona-
  2294.     lität wieü strsortÇ bzw. üstrisortÇ, liefern jedoch eine umgekehrt
  2295.     sortierte Zeichenkette zurück.
  2296.  
  2297. ü 
  2298. RETURNWERTÇ
  2299.  
  2300.     Es wird die Adresse der sortierten Zeichenkette str zurückgelie-
  2301.     fert.
  2302.  
  2303.  
  2304. üBEMERKUNGÇ
  2305.  
  2306.     Als Sortieralgorithmus liegt 'Bubblesort' zugrunde (nicht sehr
  2307.     schnell!). üstrrsortÇ und üstrirsortÇ sind als Macros in libstr.inc
  2308.     definiert und werden auf üstrsortÇ (bzw. üstrisortÇ) und üstrrevÇ abge-
  2309.     bildet.
  2310.  
  2311.  
  2312. DATEIEN
  2313.  
  2314.     libstr.inc
  2315.     libstr.a
  2316.  
  2317.  
  2318. REFERENZ
  2319.  
  2320. strrev
  2321.  
  2322.  
  2323.  
  2324. ê______________________________________________________________________
  2325. êlibstrstrstr,stristr,strrstr,strirstrlibstr
  2326.  
  2327.  
  2328. ü
  2329. NAME
  2330. à
  2331.     strstr,stristr,
  2332. strrstr,strirstr - Adresse einer Zeichenkette suchen
  2333.  
  2334. ü
  2335. SYNTAX
  2336.  
  2337. Ç    #include <libstr.inc>
  2338.  
  2339.     BYTE *strstr (str, pattern)
  2340.     BYTE *str;
  2341.     BYTE *pattern;
  2342.  
  2343.     BYTE *stristr (str, pattern)
  2344.     BYTE *str;
  2345.     BYTE *pattern;
  2346. ü
  2347. Ç    BYTE *strrstr (str, pattern)
  2348.     BYTE *str;
  2349.     BYTE *pattern;
  2350.  
  2351.     BYTE *strirstr (str, pattern)
  2352.     BYTE *str;
  2353.     BYTE *pattern;
  2354.  
  2355.  
  2356. üBESCHREIBUNG
  2357.  
  2358. Ç    üstrstrÇsuchtdie erste Position der Zeichenkette pattern innerhalb
  2359.  der Zeichenkette str ausgehend vom Stringanfang.üstristrÇunter-
  2360. scheidetdabeinichtzwischenGroß-/Kleinbuchstaben.üstrrstrÇund
  2361. üstrirstrÇsuchendabeiabdemEndederZeichenkettestr.
  2362.  
  2363.  
  2364. üRETURNWERT
  2365.  
  2366. Ç    Die Adresse der Zeichenkette pattern wird zurückgeliefert oder
  2367.  '\0', falls pattern nicht in der Zeichenkette str vorhanden ist.
  2368.  
  2369.  
  2370. üBEMERKUNGÇ
  2371.  
  2372. keine
  2373.  
  2374.  
  2375. üDATEIENÇ
  2376.  
  2377.     libstr.inc
  2378.     libstr.a   (strlen, strncmp, strchr)
  2379.  
  2380. ü
  2381. REFERENZÇ
  2382.  
  2383. strchr,strichr,strrchr,strirchr
  2384.  
  2385.  
  2386.  
  2387. ê
  2388. ______________________________________________________________________
  2389. êlibstr                          strtok                          libstr
  2390.  
  2391. Ç
  2392. ü
  2393. NAME
  2394. Ç
  2395.    à strtok - Strings in Token aufteilenÇ
  2396.  
  2397.  
  2398. üSYNTAXÇ
  2399.  
  2400.     #include <libstr.inc>
  2401.  
  2402.     BYTE *strtok (str, delim)
  2403.     BYTE *str;
  2404.     BYTE *delim;
  2405.  
  2406.  
  2407. üBESCHREIBUNGÇ
  2408.  
  2409.     üstrtokÇ liefert die Adresse einer Teil-Zeichenkette von str zurück,
  2410.     die durch zwei Zeichen aus der Menge delim eingegrenzt wird.
  2411.     Bei Übergabe von NULP als str wird von dem letzten Teilstring
  2412.     (Token) aus nach einem weiteren Token gesucht.
  2413.  
  2414. ü
  2415. RETURNWERT
  2416. Ç
  2417.     Die Adresse der Teil-Zeichenkette (Token) von str oder NULP,
  2418.     falls kein weiterer Token gefunden werden kann.
  2419.  
  2420.  
  2421. üBEMERKUNGÇ
  2422.  
  2423.     Es wird ein statischer Pointer auf str angelegt, so daß bei
  2424.     Übergabe von NULP als str ab diesem Pointer weiter gesucht wird.
  2425.     
  2426. ü
  2427. DATEIEN
  2428. Ç
  2429.     libstr.inc
  2430.     libstr.a
  2431.  
  2432.  
  2433. üREFERENZÇ
  2434.  
  2435.     strfnd, strifnd, strmat, strimat
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452. ê______________________________________________________________________
  2453. êlibstr                  strtol, strtoul, strtof                 libstr
  2454.  
  2455. Ç
  2456.  
  2457. üNAMEÇ
  2458.  
  2459.    à strtol, strtoul, strtof - Zeichemketten in Zahlen konvertierenÇ
  2460.  
  2461. ü
  2462. SYNTAX
  2463. Ç
  2464.     #include <libstr.inc>
  2465.  
  2466.     LONG strtol (number, nptr, base)
  2467.     BYTE *number;
  2468.     BYTE **nptr;
  2469.     WORD base;
  2470.  
  2471.     ULONG strtuol (number, nptr, base)
  2472.     BYTE *number;
  2473.     BYTE **nptr;
  2474.     WORD base;
  2475.     
  2476.     DOUBLE strtof (number, nptr, base)
  2477.     BYTE *number;
  2478.     BYTE **nptr;
  2479.     WORD base;
  2480.  
  2481.  
  2482. üBESCHREIBUNGÇ
  2483.  
  2484.     üstrtolÇ interpretiert den String number als Ziffernfolge und lie-
  2485.     fert den entsprechende Wert als LONG. Mit base wird die Basis der
  2486.     Zahl festgelegt (Standart ist 10). nptr kann NULL sein (dann nicht
  2487.     beachtet) oder eine gültige Adresse eines BYTE Pointers (dann wird
  2488.     in nptr die Adresse des Strings number ohne die interpretierten
  2489.     Ziffern geschrieben). üstrtoulÇ liefert den interpretierten Wert als
  2490.     unsigned long (ULONG). üstrtofÇ wertet den String in Hinsicht auf
  2491.     Dezimalwerte aus und liefert den Wert als DOUBLE zurück.
  2492.  
  2493.  
  2494. üRETURNWERTÇ
  2495.  
  2496.     Der interpretierte Wert als LONG, ULONG bzw. als DOUBLE wird
  2497.     zurückgeliefert.
  2498.  
  2499.  
  2500. üBEMERKUNGÇ
  2501.  
  2502.     keine
  2503.    
  2504. ü
  2505. DATEIEN
  2506. Ç
  2507.     libstr.inc
  2508.     libstr.a
  2509.  
  2510. ü
  2511. REFERENZ
  2512. Ç
  2513. strfroml,strcnvl
  2514.  
  2515. ê
  2516. ______________________________________________________________________
  2517. êlibstr   strtrm, strtrml, strtrmr, strptrm, strptrml, strptrmr  libstr
  2518.  
  2519. Ç
  2520.  
  2521. üNAMEÇ
  2522. à
  2523.     strtrm, strtrml, strtrmr,
  2524.     strptrm, strptrml, strptrmr - Zeichen aus Zeichenkette entfernen
  2525.  
  2526. Ç
  2527. üSYNTAXÇ
  2528.  
  2529.     #include <libstr.inc>
  2530.  
  2531.     BYTE *strtrm (str)
  2532.     BYTE *str;
  2533.  
  2534.     BYTE *strtrml (str)
  2535.     BYTE *str;
  2536.  
  2537.     BYTE *strtrmr (str)
  2538.     BYTE *str;
  2539.  
  2540.     BYTE *strptrm (str, junk)
  2541.     BYTE *str;
  2542.     BYTE *junk;
  2543.  
  2544.     BYTE *strptrml (str, junk)
  2545.     BYTE *str;
  2546.     BYTE *junk;
  2547.  
  2548.     BYTE *strptrmr (str, junk)
  2549.     BYTE *str;
  2550.     BYTE *junk;
  2551.  
  2552.  
  2553. üBESCHREIBUNGÇ
  2554.  
  2555.    ü strtrmÇ entfernt alle führenden und abschließenden Leerzeichen und
  2556.     Tabs von dem String str. üstrtrmlÇ und üstrtrmrÇ entfernen nur alle
  2557.     führenden bzw. alle abschließenden Leerzeichen und Tabs von str.
  2558.     üstrptrmÇ,ü strptrmlÇ und üstrptrmrÇ arbeiten analog, entfernen jedoch
  2559.     alle Zeichen von str, die sich auch in der Menge junk befinden.
  2560.     
  2561.  
  2562. üRETURNWERTÇ
  2563.  
  2564.     Es wird die Adresse der Zeichenkette str zurückgeliefert.
  2565.  
  2566.  
  2567. üBEMERKUNGÇ
  2568.  
  2569.     keine
  2570.  
  2571.  
  2572. üDATEIENÇ
  2573.  
  2574.     libstr.inc
  2575.     libstr.a
  2576.  
  2577. ü
  2578. 
  2579.  
  2580. ê______________________________________________________________________
  2581. êlibstr   strtrm, strtrml, strtrmr, strptrm, strptrml, strptrmr  libstr
  2582.  
  2583. ü
  2584.  
  2585. REFERENZ
  2586. Ç
  2587.     strchr
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644. ê______________________________________________________________________
  2645. êlibstrstrupr,strnupr,strwupr,struprg,strnuprglibstr
  2646.  
  2647. à
  2648. Ç
  2649. üNAMEÇ
  2650.  
  2651. à    strupr,strnupr,strwupr,
  2652. struprg,strnuprg - Zeichenkette in Großbuchstaben wandeln
  2653.  
  2654. ü
  2655. SYNTAX
  2656. Ç
  2657.     #include <libstr.inc>
  2658.  
  2659.     BYTE *strupr (str)
  2660.     BYTE *str;
  2661.  
  2662.     BYTE *strnupr (str,limit)
  2663.     BYTE *str;
  2664. WORDlimit;
  2665.  
  2666.     BYTE *strwupr (str)
  2667.     BYTE *str;
  2668.  
  2669.     BYTE *struprg (str)
  2670.     BYTE *str;
  2671.  
  2672.     BYTE *strnuprg (str,limit)
  2673.     BYTE *str;
  2674. WORDlimit;
  2675.  
  2676.  
  2677. üBESCHREIBUNGÇ
  2678.  
  2679.     üstruprÇwandeltalle(ASCII!)BuchstabenderZeichenkettestrin
  2680. Großbuchstabenum.üstrnuprÇbetrachtetdabeidiemaximalersten
  2681. limitZeichenvonstr.üstrwuprÇbetrachtetnurdieWortanfänge
  2682. jedenWortes.WobeieinWortamAnfangderZeichenketteundnach
  2683. einerbeliebigenAnzahlvonLeerzeichenoderTabsoderNewlines
  2684. beginnt.BeiüstruprgÇwerdenauchdiedeutschenUmlaute(ä,ö,ü)
  2685. durchÄ,Ö,Üersetzt.üstrnuprgÇbetrachtetwiederumnurdie
  2686. maximalerstenlimitZeichenvonstr.
  2687.  
  2688. ü
  2689. RETURNWERT
  2690. Ç
  2691.     Die Adresse der geändertenZeichenkette str wird zurückgeliefert.
  2692.  
  2693.  
  2694. üBEMERKUNG
  2695. Ç
  2696. keine
  2697.  
  2698.  
  2699. üDATEIENÇ
  2700.  
  2701.     libstr.inc
  2702.     libstr.a
  2703.  
  2704.  
  2705. üREFERENZÇ
  2706.  
  2707.     strlwr, strnlwr, strlwrg,strnlwrg
  2708. ê______________________________________________________________________
  2709. êlibstr                      substr, subnstr                     libstr
  2710. Ç
  2711.  
  2712.  
  2713. üNAMEÇ
  2714. à
  2715.     substr, subnstr - Teilstring kopieren
  2716.  
  2717. Ç
  2718. üSYNTAXÇ
  2719.  
  2720.     #include <libstr.inc>
  2721.  
  2722.     BYTE *substr (dest, source, start, end)
  2723.     BYTE *dest, *source;
  2724.     WORD start, end;
  2725.  
  2726.     BYTE *subnstr (dest, source, start, length)
  2727.     BYTE *dest, *source;
  2728.     WORD start, length;
  2729.  
  2730.  
  2731. üBESCHREIBUNG
  2732.  
  2733. Ç   ü substrÇ kopiert den Teilstring der Zeichenkette source ab der
  2734.     Position start bis zur Position end in die Zeichenkette dest.
  2735.     üsubnstrÇ kopiert den Teilstring der Zeichenkette source ab der
  2736.     Position start mit der Länge length in die Zeichenkette dest.
  2737.  
  2738.  
  2739. üRETURNWERTÇ
  2740.  
  2741.     Es wird die Adresse der Ziel-Zeichenkette dest zurückgeliefert.
  2742.  
  2743.  
  2744. üBEMERKUNGÇ
  2745.  
  2746.     keine
  2747.  
  2748.  
  2749. üDATEIENÇ
  2750.  
  2751.     libstr.inc
  2752.     libstr.a
  2753.  
  2754.  
  2755. üREFERENZÇ
  2756.  
  2757.     strcpy, strncpy, strn0cpy, strcpyn, strncpyn
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772. ê______________________________________________________________________
  2773. êlibstr                  memchr, memcmp, memcpy                  libstr
  2774.  
  2775. Ç
  2776.  
  2777. üNAMEÇ
  2778. à
  2779.     memchr, memcmp, memcpy - Adreßbereiche kopieren und vergleichen
  2780.  
  2781. Ç
  2782. üSYNTAX
  2783.  
  2784. Ç    #include <libstr.inc>
  2785.  
  2786.     BYTE *memchr (buf, c, cnt)
  2787.     BYTE *buf;
  2788.     BYTE c;
  2789.     WORD cnt;
  2790.  
  2791.     WORD memcmp (mem1, mem2, len)
  2792.     BYTE *mem1;
  2793.     BYTE *mem2;
  2794.     WORD len;
  2795.  
  2796.     BYTE *memcpy (dest, source, len)
  2797.     BYTE *dest;
  2798.     BYTE *source;
  2799.     UWORD len;
  2800.  
  2801.  
  2802. üBESCHREIBUNG
  2803.  
  2804. Ç   ü memchrÇ durchsucht ab der Adresse buf maximal len Zeichen nach dem
  2805.     Auftreten des Zeichens c.ü memcmpÇ untersucht len Bytes ab Adresse
  2806.     mem1 mit den len Bytes ab Adresse mem2 auf Gleichheit. ümemcpyÇ
  2807.     kopiert exakt len Bytes ab Adresse source an die Adresse dest.
  2808.     
  2809.  
  2810. üRETURNWERTÇ
  2811.  
  2812.    ü memchrÇ returned mit der Adresse des gefundenen Zeichens oder NULP.
  2813.    ü memcmp Çliefert 0, wenn beide Adressbereiche identisch sind, sonst
  2814.     mit der Differenz des letzten verglichenen Zeichenpaares.ü memcpyÇ
  2815.     liefert die Adresse des Zielbereiches dest zurück.
  2816.     
  2817.  
  2818. üBEMERKUNGÇ
  2819.  
  2820.     Die Funktionenü memchrÇ,ü memcmpÇ undü memcpyÇ arbeiten analog zuü strchrÇ
  2821.    ü strcmp Çundü strcpyÇ, erkennen als Ende jedoch nicht das Nullbyte, 
  2822.     sondern bearbeiten genau len Bytes.
  2823.  
  2824.  
  2825. üDATEIENÇ
  2826.  
  2827.     libstr.inc
  2828.     libstr.a
  2829.  
  2830. ü
  2831. REFERENZ
  2832. Ç
  2833.     strchr, strcmp, strcpy
  2834.  
  2835.  
  2836. ê______________________________________________________________________Ç
  2837. 8000100001\TERM1.IMG
  2838. Ç
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861. 8000100001\TERM2.IMG
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885. 8000100001\TERM3.IMG
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903. ê
  2904. êlibtermtgetentlibterm
  2905.  
  2906. ü
  2907.  
  2908. NAME
  2909. à
  2910.     tgetent  -  Termcap-Eintrag aus Termcap-Datei lesen
  2911.  
  2912. Ç
  2913. üSYNTAXÇ
  2914.  
  2915.     #include <libterm.inc>
  2916.  
  2917.     WORD  tgetent (capab, termname)
  2918.     BYTE *capab;
  2919.     BYTE *termname;
  2920.  
  2921.  
  2922. üBESCHREIBUNGÇ
  2923.  
  2924. ütgetentÇliestdieTermcap-DateiundsuchtnachdemEintragfür
  2925. denübergebenentermname.DerPfadderTermcap-Dateiwirdimall-
  2926. gemeinenüberdieEnvironment-VariableüTERMCAPÇangegeben.Ist
  2927. dieseVariablenichtvorhanden,sowirdzuerstinderDirectory
  2928. d:\etc\,dannin\etc\undsonstinderaktuellenDirectorynach
  2929. derTermcap-DateiütermcapÇgesucht(für?NIXSysteme/etc/termcap).
  2930. oderinderaktuellenDirectoryunterdemNamentermcapoderüber
  2931. IstTERMCAPkeinPfad,sountersuchtütgetentÇdieTERMCAPVariable,
  2932. obsiedirektdenTermcap-Eintragenthält.
  2933.     Der zu termname passende Eintrag wirdgesucht und wenn gefunden,
  2934.     in den Puffer capab (muss min.1024 Bytes gross sein) geschrieben.
  2935.     Zusätzlich wird ein Pointer auf capab erzeugt, der von den 
  2936.     anderen Termcap-Funktionen benutzt wird.
  2937.  
  2938.  
  2939. üRETURNWERTÇ
  2940.  
  2941.     1, wenn der Eintrag in den Puffer capab gelesen werden konnte,
  2942.     0, wenn der Eintrag und -1, wenn das Termcap-File nicht gefunden
  2943.     werden konnte.
  2944.  
  2945. ü
  2946. BEMERKUNGÇ
  2947.  
  2948. keine
  2949.  
  2950.  
  2951. üDATEIENÇ
  2952.  
  2953.     libterm.inc
  2954.     libterm.a
  2955.     libstr.a (strncmp, strcpy, strcmp, strlen)
  2956.              (getenv, fgets, fopen, fclose)
  2957.  
  2958.  
  2959. üREFERENZÇ
  2960.  
  2961. tgetnum,tgetstr,tgetflag
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967. ê______________________________________________________________________
  2968. êlibtermtgetnumlibterm
  2969.  
  2970.  
  2971. ü
  2972. NAME
  2973. Ç
  2974.     àtgetnum  -  Numerischen Termcap-Eintrags-Feld-Wert suchenÇ
  2975.  
  2976.  
  2977. üSYNTAXÇ
  2978.  
  2979.     #include <libterm.inc>
  2980.  
  2981.     WORD  tgetnum (id)
  2982.     BYTE *id;
  2983.  
  2984.  
  2985. üBESCHREIBUNGÇ
  2986.  
  2987.     Die mit ütgetentÇ gelesene Termcap-Info kann mitü tgetnumÇ aufnume-
  2988. rische Werte angewendet werden. Der Wert des mit id bezeichneten
  2989.  Feldes wird zurückgeliefert.
  2990.  
  2991.  
  2992. üRETURNWERT
  2993.  
  2994. Ç    Wert des Feldes id, oder -1 im Fehlerfall.                  
  2995.  
  2996.  
  2997. üBEMERKUNG
  2998.  
  2999. Çkeine
  3000.  
  3001. ü
  3002. DATEIEN
  3003. Ç
  3004.     libterm.inc
  3005.     libterm.a
  3006.     libstr.a (strncmp)
  3007.  
  3008.  
  3009. üREFERENZ
  3010. Ç
  3011. tgetent,tgetstr,tgetflag
  3012.  
  3013. ü
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031. ê______________________________________________________________________
  3032. êlibtermtgetflaglibterm
  3033.  
  3034. Ç
  3035.  
  3036. üNAMEÇ
  3037.  
  3038. à    tgetflag  -  Vorhandensein eines Termcap-Eintrags-Feldes testen
  3039.  
  3040. Ç
  3041. üSYNTAXÇ
  3042.  
  3043.     #include <libterm.inc>
  3044.  
  3045.     WORD  tgetflag (id)
  3046.     BYTE *id;
  3047.  
  3048.  
  3049. üBESCHREIBUNGÇ
  3050.  
  3051.     Die mit ütgetent Çgelesene Termcap-Info kann mit ütgetflagÇ auf das
  3052.     Vorhandensein eines Feldes getestet werden.
  3053.  
  3054.  
  3055. üRETURNWERTÇ
  3056.  
  3057.     Ist das Feld im gelesen Termcap-Eintrag vorhanden, so wird 1
  3058.     zurückgeliefert. 0 wird geliefert, wenn das Feld nicht gefunden
  3059.     wurde, -1 im Fehlerfall.
  3060.  
  3061.  
  3062. üBEMERKUNGÇ
  3063.  
  3064. keine
  3065.  
  3066.  
  3067. üDATEIENÇ
  3068.  
  3069.     libterm.inc
  3070.     libterm.a
  3071.     libstr.a (strncmp)
  3072.  
  3073.  
  3074. üREFERENZÇ
  3075.  
  3076. tgetent,tgetstr,tgetnum
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095. ê______________________________________________________________________
  3096. êlibtermtgetstrlibterm
  3097.  
  3098. Ç
  3099. ü
  3100. NAME
  3101. Ç
  3102. à    tgetstr  -  Alphanumerischen Termcap-Eintrags-Feld-Wert suchen
  3103.  
  3104. Ç
  3105. üSYNTAXÇ
  3106.  
  3107.     #include <libterm.inc>
  3108.     #include <stdio.h>
  3109.  
  3110.     WORD  tgetstr (id, area)
  3111.     BYTE *id;
  3112.     BYTE **area;
  3113.  
  3114. ü
  3115. BESCHREIBUNG
  3116. Ç
  3117.     Die mitü tgetentÇ gelesene Termcap-Info, kann mitü tgetstrÇ auf alpha-
  3118. numerische Felder angewendet werden. Die hinter dem Feldid ste-
  3119. hende Zeichenkette wird in area geschrieben und istzusätzlich
  3120.  auch der Rückgabewert.
  3121.  
  3122.  
  3123. üRETURNWERTÇ
  3124.  
  3125.     Wert des Feldes id, oder NULL im Fehlerfall.                  
  3126.  
  3127.  
  3128. üBEMERKUNGÇ
  3129.  
  3130. keine
  3131.  
  3132.  
  3133. üDATEIENÇ
  3134.  
  3135.     libterm.inc
  3136.     stdio.h
  3137.     libterm.a
  3138.     libstr.a (strncmp)
  3139.  
  3140.  
  3141. üREFERENZÇ
  3142.  
  3143. tgetnum,tgetflag,tgetent
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159. ê______________________________________________________________________
  3160. êlibtermtgoto                          libterm
  3161.  
  3162. Ç
  3163. ü
  3164. NAME
  3165. Ç
  3166. à    tgoto  -  Cursor-Adressierungs-String erstellen
  3167.  
  3168. ü
  3169. SYNTAX
  3170. Ç
  3171.     #include <libterm.inc>
  3172.     #include <stdio.h>
  3173.  
  3174.     BYTE *tgoto (cm, destcol, destline)
  3175.     BYTE *cm;
  3176.     WORD destcol;
  3177.     WORD destline;
  3178.  
  3179.  
  3180. üBESCHREIBUNGÇ
  3181.  
  3182.     ütgotoÇ ermittelt anhand des CursorMotionStrings cm und der über-
  3183.     gebenen Koordinaten destcol und destline die Escape-Sequenz zum
  3184.     Adressieren des Cursors.
  3185.  
  3186.  
  3187. üRETURNWERTÇ
  3188.  
  3189.     Pointer auf die erzeugte lokal statische Escape-Sequenz oder
  3190.  "OOPS", falls ein Fehler aufgetreten ist (Parameter!).
  3191.  
  3192.  
  3193. üBEMERKUNGÇ
  3194.  
  3195. keine
  3196.  
  3197.  
  3198. üDATEIENÇ
  3199.  
  3200.     libterm.inc
  3201.     stdio.h
  3202.     libterm.a
  3203.  
  3204.  
  3205. üREFERENZÇ
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223. ê______________________________________________________________________
  3224. êlibtermtputs                          libterm
  3225.  
  3226. Ç
  3227.  
  3228. üNAMEÇ
  3229. à
  3230.     tputs  -  String auf Bildschirm ausgeben
  3231.  
  3232. Ç
  3233. üSYNTAXÇ
  3234.  
  3235.     #include <libterm.inc>
  3236.  
  3237.     WORD tputs (cp, affcnt, outc)
  3238.     REGISTER BYTE  *cp;
  3239.     WORD      affcnt;
  3240.     WORD      (*outc)();
  3241.  
  3242.  
  3243. üBESCHREIBUNÇG
  3244.  
  3245.     ütputs Çgibt die Zeichenkette cp unter Verwendung der Funktion outc
  3246.     auf dem Bildschirm aus. (Bedeutung von affcnt ?)
  3247.  
  3248.  
  3249. üRETURNWERTÇ
  3250.  
  3251.     Ohne Bedeutung.
  3252.  
  3253.  
  3254. üBEMERKUNG
  3255. Ç
  3256. keine
  3257.  
  3258.  
  3259. üDATEIENÇ
  3260.  
  3261.     libterm.inc
  3262.     libterm.a
  3263.  
  3264.  
  3265. üREFERENZ
  3266.  
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276. Ç
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286. ê
  3287. ______________________________________________________________________
  3288. êlibtermt_initlibterm
  3289.  
  3290. ü
  3291.  
  3292. NAME
  3293. à
  3294.     t_init  -  Terminal-Variablen und Terminal-Mode initialisieren
  3295.  
  3296. Ç
  3297. üSYNTAXÇ
  3298.  
  3299.     #include <libterm.inc>
  3300.  
  3301.     WORD  t_init ()                  
  3302.  
  3303.  
  3304. üBESCHREIBUNGÇ
  3305.  
  3306.     üt_initÇ liest die Termcap (durch tgetent) und baut eine interne
  3307.     Struktur auf, um die t_-nums und t_-Strings zu initialisieren,
  3308.     damit sie von den t_xxx-Funktionen benutzt werden können. Unter
  3309.     ?NIX-Systemen wird zusätzlich das Terminal-IO aufRaw-Mode
  3310.  gesetzt.
  3311.  
  3312.  
  3313. üRETURNWERTÇ
  3314.  
  3315.     0, wenn die Variablen initialisiert werden konnten und
  3316.     -1, wenn tgetent einen Fehler beim Lesen der Termcap geliefert
  3317.     hat.
  3318.  
  3319.  
  3320. üBEMERKUNG
  3321.  
  3322. Çkeine
  3323.  
  3324.  
  3325. üDATEIENÇ
  3326.  
  3327.     libterm.inc
  3328.     libterm.a
  3329.     libstr.a (strcpy)
  3330.              (getenv, malloc)
  3331.  
  3332.  
  3333. üREFERENZÇ
  3334.  
  3335. üÇt_exit,tgetent
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351. ê______________________________________________________________________
  3352. êlibtermt_exitlibterm
  3353.  
  3354.  
  3355. Ç
  3356. üNAMEÇ
  3357. à
  3358.     t_exit  -  Terminal-Mode zuruecksetzen
  3359. Ç
  3360.  
  3361. üSYNTAXÇ
  3362.  
  3363.     #include <libterm.inc>
  3364.  
  3365.     VOID  t_exit ()
  3366.  
  3367.  
  3368. üBESCHREIBUNGÇ
  3369.  
  3370.     üt_exitÇ setzt den Terminal-Mode zurück (in den Zustand vor dem
  3371.     t_init()-Aufruf) und sendet den Terminal-Reinitialisierungs-
  3372.     String t_ir.
  3373.  
  3374.  
  3375. üBEMERKUNGÇ
  3376.  
  3377. keine
  3378.  
  3379.  
  3380. üDATEIENÇ
  3381.  
  3382.     libterm.inc
  3383.     libterm.a
  3384.  
  3385.  
  3386. üREFERENZÇ
  3387.  
  3388.     t_init
  3389. ë
  3390.  
  3391. Ç
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415. ê______________________________________________________________________
  3416. êlibtermt_rawon,t_rawoff                    libterm
  3417.  
  3418. Ç
  3419.  
  3420. üNAMEÇ
  3421.  
  3422.    à t_rawon,t_rawoff - TerminalzwischenNormalundRaw umschaltenÇ
  3423.  
  3424.  
  3425. üSYNTAXÇ
  3426.  
  3427.     #include <libterm.inc>
  3428.  
  3429.     VOID  t_rawon ()
  3430.     VOID  t_rawoff ()
  3431.  
  3432.  
  3433. üBESCHREIBUNG
  3434.  
  3435. Ç    üt_rawon Çsetzt das Terminal auf den Raw-Modus(bei ?NIX-Systemen).
  3436. üt_rawoffÇschaltetdenModuswiederaus,dasTerminalbefindet
  3437. sichwiederimNormal-Modus.
  3438.  
  3439.  
  3440. üBEMERKUNG
  3441. Ç
  3442. Wirdnurbei?NIX-Systemeneingesetzt.
  3443.  
  3444.  
  3445. üDATEIEN
  3446.  
  3447. Ç    libterm.inc
  3448.     libterm.a
  3449.  
  3450.  
  3451. üREFERENZ
  3452. Ç
  3453. t_init
  3454. ë
  3455.  
  3456. Ç
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467. ë
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479. ê______________________________________________________________________
  3480. êlibtermt_beep                         libterm
  3481. Ç
  3482.  
  3483. üNAMEÇ
  3484.  
  3485.     àt_beep  -  Signalton auf Standard-Ausgabe ausgebenÇ
  3486.  
  3487. ü
  3488. SYNTAX
  3489. Ç
  3490.     #include <libterm.inc>
  3491.  
  3492.     VOID  t_beep ()
  3493.  
  3494.  
  3495. üBESCHREIBUNGÇ
  3496.  
  3497.    ü t_beep Çgibt den Signalton (bell, ^G) auf stdout aus.
  3498.  
  3499. ü
  3500. BEMERKUNGÇ
  3501.  
  3502. keine
  3503.  
  3504. ü
  3505. DATEIEN
  3506. Ç
  3507.     libterm.inc
  3508.     libterm.a
  3509.  
  3510.  
  3511. üREFERENZÇ
  3512.  
  3513.     
  3514.  
  3515.  
  3516.  
  3517.  
  3518.  
  3519.  
  3520.  
  3521.  
  3522.  
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.  
  3530.  
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542. ê
  3543. ______________________________________________________________________
  3544. êlibterm               t_cls,t_cleol,t_cleoslibterm
  3545. Ç
  3546.  
  3547.  
  3548. üNAMEÇ
  3549.  
  3550.     àt_cls,t_cleol,t_cleos - Bildschirmbereiche löschen
  3551. Ç
  3552. ü
  3553. SYNTAX
  3554. Ç
  3555.     #include <libterm.inc>
  3556.  
  3557.     VOID  t_cls ()
  3558.  
  3559. VOIDt_cleol()
  3560.  
  3561. VOIDt_cleos()
  3562.  
  3563.  
  3564. üBESCHREIBUNGÇ
  3565.  
  3566.    ü t_clsÇ löscht den Bildschirm und positioniert den Cursor indie
  3567.  linke obere Ecke (0, 0). üt_cleolÇ löscht den Bildschirm vom Cursor
  3568.  bis zum Ende der Zeileüt_cleosÇbiszumEndederSeite.
  3569.  
  3570.  
  3571.  
  3572. üBEMERKUNG
  3573.  
  3574. Çkeine
  3575.  
  3576.  
  3577. üDATEIENÇ
  3578.  
  3579.     libterm.inc
  3580.     libterm.a
  3581.  
  3582.  
  3583. üREFERENZÇ
  3584.  
  3585. t_goxy
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607. ê______________________________________________________________________
  3608. êlibtermt_curson,t_cursoff,t_cursstatlibterm
  3609.  
  3610. Ç
  3611.  
  3612. üNAMEÇ
  3613. à
  3614.     t_curson,t_cursoff,
  3615. t_cursstat - Bildschirm-Cursor an-undausschalten
  3616.  
  3617. Ç
  3618. üSYNTAXÇ
  3619.  
  3620.     #include <libterm.inc>
  3621.  
  3622.     VOID  t_curson ()
  3623.  
  3624. VOIDt_cursoff()
  3625.  
  3626. BOOLt_cursstat()
  3627.  
  3628. ü
  3629. BESCHREIBUNG
  3630.  
  3631. Ç    üt_cursonÇ schaltet den Bildschirm-Cursor anundüt_cursoffÇschaltet
  3632. ihnwiederaus.Mitüt_cursstat()Çkannabgefragtwerden,obder
  3633. Cursorgeradeausgeschaltetist,oderan.
  3634.  
  3635.  
  3636. üRETURNWERTÇ
  3637.  
  3638. üt_cursstat()ÇliefertTRUE,wennderCursorangeschaltetist,
  3639. FALSEsonst.
  3640.  
  3641.  
  3642. üBEMERKUNG
  3643. Ç
  3644. üt_cursstat()Ç kann natürlich nur richtig arbeiten, wenn jedes An-/
  3645. Ausschalten des Cursors über die Funktionen üt_curson()Ç und
  3646.  üt_cursoff()Ç gesteuert wird.
  3647.  
  3648.  
  3649.  
  3650. üDATEIENÇ
  3651.  
  3652.     libterm.inc
  3653.     libterm.a
  3654.  
  3655.  
  3656. üREFERENZÇ
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671. ê______________________________________________________________________
  3672. êlibterm                    t_cblink, t_csteady                 libtermÇ
  3673.  
  3674.  
  3675. ü
  3676. NAMEÇ
  3677.  
  3678.    à t_cblink, t_csteady - Cursor-Blinken an- / ausschaltenÇ
  3679.  
  3680.  
  3681. üSYNTAXÇ
  3682.  
  3683.     #include <libterm.inc>
  3684.  
  3685.     VOID t_cblink()
  3686.  
  3687.     VOID t_csteady()
  3688.  
  3689.  
  3690. üBESCHREIBUNGÇ
  3691.  
  3692.    ü t_cblinkÇ schaltet das Blinken des Cursor ein und üt_csteadyÇ schal-
  3693. tetdas Blinken wieder aus.
  3694.  
  3695.  
  3696. üBEMERKUNGÇ
  3697.  
  3698.     keine
  3699.     
  3700.  
  3701. üDATEIENÇ
  3702.  
  3703.     libterm.inc
  3704.     libterm.a
  3705.  
  3706.  
  3707. üREFERENZÇ
  3708.  
  3709.     
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735. ê______________________________________________________________________
  3736. êlibtermt_getc                         libterm
  3737.  
  3738. ü
  3739. Ç
  3740. üNAMEÇ
  3741. à
  3742.     t_getc  -  Tastencode oder Konstante fuer Sondertaste liefern
  3743.  
  3744. Ç
  3745. üSYNTAXÇ
  3746.  
  3747.     #include <libterm.inc>
  3748.  
  3749.     WORD  t_getc ()
  3750.  
  3751. ü
  3752. BESCHREIBUNG
  3753. Ç
  3754.    ü t_getcÇ liefert den Ascii-Code einer betätigten Taste oder,falls
  3755.  es sich um eine Sonder-Taste handelt (Funktions-, Escape-, Cursor-
  3756. Tasten), eine in libterm.inc definierte Konstante zurück.Das oder
  3757.  die Zeichen (Sonder-Tasten) der Tasten werden dabei nicht geechot.
  3758.  
  3759.  
  3760. üRETURNWERTÇ
  3761.  
  3762.     Tastencode oder Konstante der Sonder-Taste.  
  3763.  
  3764.  
  3765. üBEMERKUNGÇ
  3766.  
  3767. keine
  3768.  
  3769.  
  3770. üDATEIENÇ
  3771.  
  3772.     libterm.inc
  3773.     libterm.a
  3774.     libstr.a (strfnd)
  3775.  
  3776.  
  3777. üREFERENZÇ
  3778.  
  3779. t_init
  3780.  
  3781.  
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799. ê______________________________________________________________________
  3800. êlibtermt_goxy,t_chome,t_cup,t_cdown,t_cright,t_cleft   libterm
  3801.  
  3802. Ç
  3803.  
  3804. üNAMEÇ
  3805. à
  3806.     t_goxy,t_chome,t_cup,
  3807. t_cdown,t_cright,t_cleft  -  Bildschirm-Cursor positionieren
  3808.  
  3809. ü
  3810. SYNTAX
  3811. Ç
  3812.     #include <libterm.inc>
  3813.  
  3814.     VOID t_goxy (x, y)
  3815.     WORD x, y;
  3816.  
  3817. VOIDt_chome()
  3818.  
  3819. VOIDt_cup()
  3820.  
  3821. VOIDt_cdown()
  3822.  
  3823. VOIDt_cright()
  3824.  
  3825. VOIDt_cleft()
  3826.  
  3827. ü
  3828. BESCHREIBUNG
  3829. Ç
  3830.     üt_goxyÇ positioniert den Cursor auf die Koordinaten x und y. Der
  3831.     Nullpunkt ist hierbei die linke obere Bildschirmecke (0,0). 
  3832. üt_chomeÇpositioniertdenCursorindielinkeobereBildschirmecke
  3833. ohnedenBildschirmzulöschen.üt_cupÇ,üt_cdownÇ,üt_crightÇundü
  3834. t_cleftÇpositionierendenCursorrelativzuraktuellenPosition
  3835. umeineZeilenachoben,bzw.umeineZeilenachunten,bzw.um
  3836. eineSpaltenachrechts,bzw.umeineSpaltenachlinks.  
  3837.  
  3838. ü
  3839. BEMERKUNG
  3840. Ç
  3841. keine
  3842.  
  3843. ü
  3844. DATEIEN
  3845. Ç
  3846.     libterm.inc
  3847.     libterm.a
  3848.  
  3849.  
  3850. üREFERENZÇ
  3851.  
  3852.     t_init,tgoto
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863. ê______________________________________________________________________
  3864. êlibtermt_setatt,t_invon,t_invofflibterm
  3865. ü
  3866.  
  3867. Ç
  3868. üNAMEÇ
  3869.  
  3870. à    t_setatt,t_invon,t_invoff - Terminal-Attribute setzen
  3871.  
  3872. Ç
  3873. üSYNTAXÇ
  3874.  
  3875.     #include <libterm.inc>
  3876.  
  3877.     WORD  t_setatt (newatt)
  3878. WORDnewatt;
  3879.  
  3880. WORDt_invon()
  3881.  
  3882. WORDt_invoff()
  3883.  
  3884.  
  3885. üBESCHREIBUNGÇ
  3886.  
  3887.    ü t_setatt Çsetzt entsprechend dem Parameter newatt die Terminal-
  3888.     attribute DIM, INV, BLK, UND, ALT, GRA oder NRM. Dabei wird
  3889.     versucht, die Ausgabe zu optimieren, d. h. möglichst wenig bytes
  3890.     zu senden.üt_invonÇundüt_invoffÇschaltendenInvers-Modusan
  3891. bzw.aus.
  3892.  
  3893.     Dabei haben die Modes folgende Bedeutung:
  3894.  
  3895.         NRM - Normal
  3896.         DIM - Halbe Helligkeit
  3897.         BLK - Blinkend
  3898.         UND - Unterstrichen
  3899.         INV - Inverse Darstellung
  3900.         GRA -
  3901.         ALT -
  3902.  
  3903.  
  3904. üRETURNWERT
  3905. Ç
  3906.     Zurückgeliefert werden die akt. Attribut-Flags als Word.     
  3907.  
  3908.  
  3909. üBEMERKUNGÇ
  3910.  
  3911. üt_invonÇundüt_invoffÇsindalsMakrosdefiniertundaufüt_setattÇ
  3912. abgebildet.
  3913. ü
  3914.  
  3915. DATEIEN
  3916.  
  3917. Ç    libterm.inc
  3918.     libterm.a
  3919.  
  3920.  
  3921.  
  3922.  
  3923.  
  3924.  
  3925.  
  3926. ê
  3927. ______________________________________________________________________Ç
  3928. êlibtermt_settwlibterm
  3929. ü
  3930.  
  3931. Ç
  3932. üNAMEÇ
  3933.  
  3934. à    t_settw-Tabulatorweitesetzen
  3935.  
  3936. Ç
  3937. üSYNTAXÇ
  3938.  
  3939.     #include <libterm.inc>
  3940.  
  3941.     VOID  t_settw (width)
  3942. WORDwidth;
  3943.  
  3944.  
  3945. üBESCHREIBUNGÇ
  3946.  
  3947.    ü t_settw Çsetzt dieinterneTabulatorweite(t_tw)aufdenWert
  3948. width.
  3949.  
  3950.  
  3951. üBEMERKUNGÇ
  3952.  
  3953. üt_settwÇistalsMakroinlibterm.incdefiniert.
  3954. ü
  3955.  
  3956. DATEIEN
  3957.  
  3958. Ç    libterm.inc
  3959.     libterm.a
  3960.  
  3961.  
  3962.  
  3963.  
  3964.  
  3965.  
  3966.  
  3967.  
  3968.  
  3969.  
  3970.  
  3971.  
  3972.  
  3973.  
  3974.  
  3975.  
  3976.  
  3977.  
  3978.  
  3979.  
  3980.  
  3981.  
  3982.  
  3983.  
  3984.  
  3985.  
  3986.  
  3987.  
  3988.  
  3989.  
  3990. ê
  3991. ______________________________________________________________________
  3992. êlibterm                 t_hline, t_vline, t_box                libterm
  3993. Ç
  3994.  
  3995.  
  3996. üNAMEÇ
  3997.  
  3998.     àt_hline, t_vline, t_box - Linien und Boxen zeichnenÇ
  3999.     
  4000.  
  4001. üSYNTAXÇ
  4002.  
  4003.     #include <libterm.inc>
  4004.  
  4005.     VOID t_hline (col, row, width, mode, clear, chr)
  4006.     WORD col, row, width, mode;
  4007.     BOOL clear;
  4008.     BYTE chr;
  4009.  
  4010.     VOID t_vline (col, row, height, mode, clear, chr)
  4011.     WORD col, row, height, mode;
  4012.     BOOL clear;
  4013.     BYTE chr;
  4014.  
  4015.     VOID t_box (col, row, width, height, mode, clear, chr)
  4016.     WORD col, row, width, height, mode;
  4017.     BOOL clear;
  4018.     BYTE chr;
  4019.  
  4020.  
  4021. üBESCHREIBUNGÇ
  4022.  
  4023.     üt_hlineÇ gibt eine horizontale Linie auf dem Bildschirm aus. Dabei
  4024.     beginnt die Linie ab col, row mit der Länge width. Abhängig von
  4025.     mode wird die Linie mit unterschiedlichen (Grafik-)Zeichen be-
  4026.     schrieben. mode kann einen der untenstehenden Werte annehmen:
  4027.  
  4028.            0 : Leer, keine Grafik, nur Leerzeichen
  4029.            1 : --- Grafik 
  4030.            2 : +-+ Grafik 
  4031.            3 : Grafik mit Zeichen chr        
  4032.            4 : Halbgrafik (linea fuer GEMDOS)
  4033.  
  4034.     Wenn clear = TRUE ist, dann wird bei mode 4 und GEMDOS der Bereich
  4035.     zuerst durch Leerzeichen überschrieben.
  4036.     Mitü t_vlineÇ wird eine vertikale Linie mit der Höhe height beschrie-
  4037.     ben. üt_box Çbeschreibt eine Box mit der Breite width und der Höhe
  4038.     height.
  4039.  
  4040.  
  4041. üBEMERKUNGÇ
  4042.  
  4043.     Unter GEMDOS wird bei mode 4 versucht die Grafik durch LineA-
  4044.     Linien zu ersetzen.
  4045.     
  4046.  
  4047. üDATEIENÇ
  4048.  
  4049.     libterm.inc
  4050.     libterm.a
  4051.  
  4052. ü
  4053. REFERENZÇ
  4054.  
  4055. ê______________________________________________________________________Ç
  4056. 8000100001\MENU1.IMG
  4057. Ç
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067.  
  4068.  
  4069.  
  4070.  
  4071.  
  4072.  
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.  
  4080.  
  4081.  
  4082. 8000100001\MENU2.IMG
  4083.  
  4084.  
  4085.  
  4086.  
  4087.  
  4088.  
  4089.  
  4090.  
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.  
  4097.  
  4098.  
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.  
  4105.  
  4106.  
  4107.  
  4108.  
  4109.  
  4110. 8000100001\MENU3.IMG
  4111.  
  4112.  
  4113.  
  4114.  
  4115.  
  4116.  
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122. ê
  4123. êlibmenupmexec                         libmenu
  4124. Ç
  4125.  
  4126. ü
  4127. NAME
  4128. à
  4129.     pmexec  -  Popup-Menu aufbauen und ausführen
  4130. Ç
  4131.  
  4132. üSYNTAXÇ
  4133.  
  4134.     #include <popmenu.inc>
  4135.  
  4136.     BYTE *pmexec (menup, col,row, first, retkeyp, submenu)
  4137.     PM   *menup;
  4138.     WORD  col;
  4139.     WORD  row;
  4140.     BYTE *first;
  4141.     WORD *retkeyp;
  4142.     BOOL  submenu;
  4143.  
  4144. ü
  4145. BESCHREIBUNG
  4146. Ç
  4147.    ü pmexecÇ ist die Hauptfunktion des üpopup-MenüsÇ. Sie steuert den
  4148.     gesammten Menü-Ablaub durch Aufruf mehrerer Unterfunktionen.
  4149.     Ein Menü ist eine Menge von einzelnen Menüpunkten, die durch
  4150.     die Cursortasten angesprungen und durch die RETURN-Taste
  4151.     selektiert werden können. Die Menüpunkte werden untereinander
  4152.     dargestellt. Sind mehr Menüeinträge vorhanden, als Platz angege-
  4153.     ben ist (pm_height), so wird das Menü in einzelne Seiten aufge-
  4154.     teilt. Um die Menüeinträge wird ein Rahmen gezogen, in der ober-
  4155.     sten Zeile wird der Menütitel, falls vorhanden, zentriert ange-
  4156.     zeigt.
  4157.  
  4158.     Die übergebenen Parameter im einzelnen.    
  4159.     menup ist dabei ein Zeiger auf eine Menü-Struktur der Form:
  4160.  
  4161.     typedef struct
  4162.     {
  4163.        BYTE *pm_title;   /* Titel des Menüs */
  4164.        WORD  pm_width;   /* Breite des Menüs zwischen beiden Seiten */
  4165.        WORD  pm_height;  /* Höhe des Menüs zwischen beiden Linien */
  4166.        WORD  pm_size;    /* Anzahl der Menü-Einträge */
  4167.        PME  *pm_entries; /* Feld der einzelnen Einträgen */
  4168.     } PM;
  4169.  
  4170.     Die einzelnen Menü-Einträge haben dabei folgenden Aufbau:
  4171.     
  4172.     typedef struct
  4173.     {
  4174.        BYTE *pme_text;   /* Anzeigetext des Menü-Eintrages */
  4175.        WORD  pme_type;   /* Typ des Menü-Eintrages */
  4176.        BYTE *pme_ret;    /* Returnwert oder Funktion oder Untermenü */
  4177.        BYTE *pme_param;  /* Parameter, wenn pme_ret Funktion oder */
  4178.     } PME;               /* Untermenü ist. */
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186. ê______________________________________________________________________
  4187. êlibmenupmexec                         libmenu
  4188. Ç
  4189.  
  4190.  
  4191.     pme_type kann dabei folgende Werte annehmen:
  4192.     
  4193.        üPMVALUEÇ:   in pme_ret ist ein String vorhanden, der bei Aktivie-
  4194.                   rung des Eintrages zurückgeliefert wird.
  4195.        üPMPROCÇ:    bei Selektion des Menüeintrages wird eine Prozedur
  4196.                   aufgerufen, das Menü jedoch nicht verlassen.
  4197.        üPMFUNCÇ:    in pme_ret ist die Adresse einer Funktion vom Typ
  4198.                   BYTE * vorhanden. Bei Selektion des Menüeintrages
  4199.                   wird die Funktion ausgeführt und ihr Wert zurückge-
  4200.                   liefert. Der Funktion werden dabei pme_param, 
  4201.                   ein Pointer auf die Menüstruktur und ein Pointer
  4202.                   auf den aktivierten Menüeintrag übergeben.
  4203.        üPMMENUÇ:    pme_ret enthält die Adresse einer Menüstruktur.
  4204.                   Bei Auswahl dieses Eintrages wird ein Untermenü
  4205.                   aufgebaut und beim Beenden dieses Menüs, der Wert
  4206.                   zurückgeliefert (Rekursion). Dem Untermenü wird
  4207.                   pme_param als first übergeben.
  4208.  
  4209.     Zusätzlich muß pme_type entweder mit üPMSELECTÇ oder üPMDESELÇ ver-
  4210.     odert werden.
  4211.     Bei PMSELECT darf der betroffene Menüeintrag selektiert werden,
  4212.     bei PMDESEL wird er zwar angezeigt, kann jedoch nicht durch
  4213.     RETURN aktiviert werden.
  4214.  
  4215.     row und col sind die Zeilen- und Spaltenposition der linken oberen
  4216.     Ecke der Umrahmung. Wenn first ungleich NULP ist, dann wird in den
  4217.     Menü-Einträgen nach dem Text gesucht, der mit dem Text von first
  4218.     beginnt. Auf diesen Eintrag wird dann der Cursor zuerst positio-
  4219.     niert. first braucht dabei nicht den gesammten Text des gewünschten
  4220.     Eintrages enthalten, die ersten Buchstaben genügen (Signifikanz
  4221.     beachten!); Groß-/Kleinschrift wird bei dem Suchen nicht berück-
  4222.     sichtigt (strnicmp).
  4223.     In retkeyp ist der Code der Taste enthalten, die das Beenden des
  4224.     Menüs hervorrief.
  4225.     Mit submenu = FALSE wird der Funktion pmexec mitgeteilt, daß es
  4226.     sich bei dem übergebenen Menue um das Hauptmenue handelt, die
  4227.     Taste CursorLeft demnach nicht zum Beenden des Menüs benutzt
  4228.     werden kann.    
  4229.  
  4230.    ü Die Tasten zum Bedienen des MenüsÇ:
  4231.     
  4232.     Mit der Cursortaste DOWN (bzw. UP) kann von einem Menueintrag zum
  4233.     nächsten (vorherigen) Menüeintrag positioniert werden.
  4234.     Die Cursortaste LEFT kann nur bedient werden, wenn der aktuelle
  4235.     Menüeintrag vom Typ PMMENU ist, also ein Untermenü enthält.
  4236.     Die Cursortaste RIGHT wird nur akzeptiert, wenn es sich bei dem
  4237.     aktuellen Menü um ein Untermenü handelt.
  4238.     Die RETURN und die ENTER Tasten selektieren den aktuellen Eintrag.
  4239.     Dabei wirdü pmexec Çmit dem Wert von pme_ret oder dem Wert der
  4240.     Funktion in pme_ret oder dem Wert des Untermenüs in pme_ret ver-
  4241.     lassen. Ist der Menüeintrag vom Typ PMPROC, so wird zwar die
  4242.     Prozedur in pme_ret ausgeführt,ü pmexecÇ jedoch nicht verlassen.
  4243.     Cursor HOME positioniert den Cursor auf den ersten Eintrag.
  4244.     Die Leertaste versucht zuerst ein Untermenü aufzurufen (Cursor
  4245.     RIGHT) oder bei Mißerfolg den nächsten Eintrag anzuspringen
  4246.     (Cursor DOWN).
  4247.  
  4248.  
  4249.  
  4250. ê______________________________________________________________________
  4251. êlibmenupmexec                         libmenu
  4252. Ç
  4253.  
  4254.  
  4255.     Die Backspace Taste versucht zuerst zum höher liegenden Menü zu
  4256.     springen oder, falls nicht vorhanden (akt. Menü ist Hauptmenü)
  4257.     den vorherigen Menüeintrag anzuspringen.
  4258.     Wird die ESCAPE Taste 2 mal betätigt, so wird pmexec abgebrochen
  4259.     und NULP zurückgeliefert.
  4260.     Füralle anderen Eingaben (soweit zwischen ASCII 'A' und 'z')
  4261.     wirdversucht, einen Eintrag zufinden, dessen Text mit dem ent-
  4262. sprechenden Buchstaben anfängt.Der Cursor wird dann auf diesen
  4263.  Eintrag positioniert.
  4264.  
  4265.  
  4266. üBEMERKUNGÇ
  4267.  
  4268. VordemAufrufvonüpmexecÇmußdasTerminalmitüt_initÇinitiali-
  4269. siertwerden.
  4270.  
  4271.  
  4272. üRETURNWERTÇ
  4273.  
  4274.     Wert von pme_ret (pme_type = PMVALUE), oder Wert der Funktion in
  4275.     pme_ret (pme_type = PMFUNC), oder Wert des Untermenüs in pme_ret
  4276.     (pme_type = PMMENU) oder NULP bei Abbruch durch ESCAPE (retkeyp =
  4277.     27) bzw. bei Auftreten eines Fehlers (retkeyp = -1).
  4278.  
  4279.  
  4280. üDATEIENÇ
  4281.  
  4282.     popmenu.inc
  4283.     stdio.h
  4284.     libmenu.a
  4285.     libstr.a
  4286.     libterm.a
  4287.     termcap
  4288.  
  4289.  
  4290. üREFERENZÇ
  4291.  
  4292.     pmselect,t_init,t_exit,t_getc
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314. ê______________________________________________________________________
  4315. êlibmenupmexec                         libmenu
  4316. Ç
  4317.  
  4318.  
  4319. üBEISPIELÇ
  4320.  
  4321.     #include <stdio.h>
  4322.     #include <popmenu.inc>
  4323.  
  4324.     BYTE *functel();
  4325.     BYTE *selectall();
  4326.  
  4327.     extern PM testmenu;
  4328.  
  4329.     PME vorn_ent[] =
  4330.        {
  4331.           { "Alois",  (PMVALUE | PMSELECT), "Alois", NULP },
  4332.           { "Sandro", (PMVALUE | PMSELECT), "Sandro", NULP },
  4333.           { "Werner", (PMMENU | PMSELECT), (BYTE *) &testmenu, NULP },
  4334.           { "Meier", (PMVALUE | PMSELECT), "Meier", NULP }
  4335.        };
  4336.     PM vornmenu =
  4337.     {
  4338.        "Vornamen", 10, 6, PMTABSIZE (vorn_ent), vorn_ent
  4339.     };
  4340.     
  4341.     PME test_ent[] =
  4342.        {
  4343.           { "Name", PMVALUE | PMSELECT, "Name select", NULP },
  4344.           { "Gebname", PMVALUE | PMSELECT, "Gebname", NULP },
  4345.           { "Vorname", PMMENU | PMSELECT, (BYTE *) &vornmenu, "san" },
  4346.           { "Alter", PMMENU | PMSELECT, (BYTE *) &vornmenu, NULP },
  4347.           { "Strasse", PMVALUE | PMSELECT, "Strasse", NULP },
  4348.           { "Bezirk", PMVALUE | PMSELECT, "Bezirk", NULP },
  4349.           { "Beruf", PMVALUE | PMSELECT, "Beruf", NULP },
  4350.           { "Select", PMPROC | PMSELECT, selectall, "" }
  4351.        };
  4352.        
  4353.     PM testmenu = 
  4354.     {
  4355.        "Testmenu", 12, 7, PMTABSIZE (test_ent), test_ent
  4356.     };
  4357.     
  4358.     BYTE *selectall (dummy, menup)
  4359.     BYTE *dummy;
  4360.     PM *menup;
  4361.     {
  4362.        pmselect (menup, "", TRUE);
  4363.        return ("Alle Eintraege selektiert!");
  4364.     }
  4365.  
  4366.     main ()
  4367.     {
  4368.        BYTE *ret;
  4369.        WORD retkey;
  4370.        
  4371.        t_init();
  4372.        ret = pmexec (&testmenu, 5, 7, "Beruf", &retkey, !ISSUBMENU);
  4373.        printf ("'%s'\n", (retkey == 27 ? "Abbruch" : ret));
  4374.        t_getc();
  4375.        t_exit();
  4376.     }
  4377.  
  4378. ê______________________________________________________________________
  4379. êlibmenupmselect,PMSelect,PMDesel    libmenu
  4380. Ç
  4381.  
  4382.  
  4383. üNAMEÇ
  4384. à
  4385.     pmselect,PMSelect,
  4386. PMDesel -  Popup-Menü-Einträge selektieren / deselektieren
  4387. Ç
  4388.  
  4389. üSYNTAXÇ
  4390.  
  4391.     #include <popmenu.inc>
  4392.  
  4393.     WORD pmselect (menup, text, select)
  4394.     PM   *menup;
  4395.     BYTE *text;
  4396.     BOOL  select;
  4397.  
  4398.     WORD PMSelect (menup, text)
  4399.     PM   *menup;
  4400.     BYTE *text;
  4401.  
  4402.     WORD PMDesel (menup, text)
  4403.     PM   *menup;
  4404.     BYTE *text;
  4405.     
  4406. ü
  4407. BESCHREIBUNG
  4408. Ç
  4409.    ü pmselectÇ selektiert oder deselektiert Menueinträge. Deselektierte
  4410.  Menueinträge werden zwar angezeigt, könnten jedoch nicht mehr über
  4411.  RETURN (z. B.) ausgewählt werden. Bei select = TRUE werden alle
  4412.  Einträge selektiert, deren Anzeigetext mit text gematched werden
  4413.  können (text = "" -> alle selektieren).Für select = FALSE werden
  4414.  die entsprechenden Einträge deselektiert.
  4415.    ü PMSelectÇ und üPMDeselÇ sind als Makros in popmenu.inc definiert und
  4416.  haben bis auf den letzten Parameter die gleiche Syntax.
  4417.  
  4418.  
  4419. üRETURNWERTÇ
  4420.  
  4421.     Anzahl der betroffenen Einträge, wobei bereits selektierte (bzw.
  4422.     deselekt.) nicht nochmal selektiert (bzw. deselekt.) werden.
  4423.     
  4424. ü
  4425. BEMERKUNGÇ
  4426.  
  4427. keine
  4428.  
  4429. ü
  4430. DATEIEN
  4431. Ç
  4432.     popmenu.inc, libmenu.a, libstr.a,libterm.a,termcap
  4433.  
  4434.  
  4435. üREFERENZ
  4436. Ç
  4437.     pmexec
  4438. ê
  4439.  
  4440.  
  4441.  
  4442. ______________________________________________________________________
  4443. 8000100001\DATA1.IMG
  4444. ê
  4445.  
  4446.  
  4447.  
  4448.  
  4449.  
  4450.  
  4451.  
  4452.  
  4453.  
  4454.  
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460.  
  4461.  
  4462.  
  4463.  
  4464.  
  4465.  
  4466.  
  4467.  
  4468.  
  4469. 8000100001\DATA2.IMG
  4470.  
  4471.  
  4472.  
  4473.  
  4474.  
  4475.  
  4476.  
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482.  
  4483.  
  4484.  
  4485.  
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492.  
  4493.  
  4494.  
  4495.  
  4496.  
  4497. 8000100001\DATA3.IMG
  4498.  
  4499.  
  4500.  
  4501.  
  4502.  
  4503.  
  4504.  
  4505.  
  4506.  
  4507.  
  4508.  
  4509.  
  4510. êlibdata                           stack                        libdata
  4511. Ç
  4512.  
  4513. ü
  4514. NAME
  4515. à
  4516.     stack - Funktionen zum Manipulieren der Datenstruktur stack
  4517. Ç
  4518. ü
  4519. BESCHREIBUNG
  4520. Ç
  4521.     Mithilfe der Stack-Funktionen können Stack-Datenstrukturen aufge-
  4522.     baut und verändert werden.
  4523.     Ein Stack muß immer erst durch üstacknewÇ alloziert werden. Der 
  4524.     Pointer, der von stacknew geliefert wird, muß den anderen Stack-
  4525.     funktionen als Parameter übergeben werden. Der Pointer zeigt auf
  4526.     eine Stack-Typstruktur mit folgendem Aufbau:
  4527.     
  4528.     struct _stk
  4529.     {
  4530.        BYTE  *stk_name;      /* Name des Stacks                     */
  4531.        STE   *stk_top;       /* Zeiger auf oberstes Stack-Element   */
  4532.        WORD   stk_flag;      /* Attribut-Flag des Stacks            */
  4533.        WORD   stk_mdepth;    /* max. Tiefe des Stacks               */
  4534.        WORD   stk_cdepth;    /* akt. Tiefe des Stacks               */
  4535.     };
  4536.     typedef struct _stk  STK;
  4537.  
  4538.     Durch die Operationenü stackpushÇ undü stackpopÇ können Elemente auf
  4539.     den Stack gepackt bzw. vom Stack entfernt werden. Die Elemente
  4540.     können dabei unterscheidlichen Typs sein; der Typ des zu pushenden
  4541.     Elements wird der Operation üstackpushÇ übergeben und vom Stack
  4542.     selbst verwaltet. Der Operation üstackpopÇ muß dann ein Zeiger auf
  4543.     eine dem Typ entsprechende Speichervariable übergeben werden.
  4544.     Mitü stacktypeÇ kann der Typ des Top-Elementes erfragt werden. Dabei
  4545.     kann der Typ einen der unterstehenden Werte annehmen:
  4546. ü    
  4547.         STKBYTE        char                       
  4548.         STKBOOL        short int                  
  4549.         STKWORD        short int                  
  4550.         STKUWORD       unsigned short int         
  4551.         STKLONG        long int                   
  4552.         STKULONG       unsigned long int                         
  4553.         STKFLOAT       float                                     
  4554.         STKDOUBLE      long float                                
  4555.         STKSTRING      char *
  4556.         STKPOINTER     char * oder int * oder ...
  4557. Ç
  4558.     Wird beiü stacknewÇ die Größe des Stacks mit > 0 angegeben, so wird
  4559.     damit die maximale Tiefe des Stack festgelegt, wird als Größe 0
  4560.     übergeben, so kann der Stack beliebig wachsen (nur durch Speicher-
  4561.     platz begrenzt).
  4562.     Zum Freigeben des vom Stack allozierten Speicherbereiches wird
  4563.    ü stackdelÇ aufgerufen.
  4564.     
  4565. ü
  4566. DATEIEN
  4567. Ç
  4568.     stack.inc   
  4569.     libdata.a
  4570.  
  4571.  
  4572. ê
  4573. ______________________________________________________________________
  4574. êlibdata                    stacknew, StackNew                  libdataÇ
  4575.  
  4576.  
  4577. ü
  4578. NAMEÇ
  4579.  
  4580.    à stacknew, StackNew - Stackstruktur erzeugenÇ
  4581.  
  4582. ü
  4583. SYNTAXÇ
  4584.  
  4585.     #include <stack.inc>
  4586.  
  4587.     STK *stacknew (name, flag, depth)
  4588.     BYTE *name;
  4589.     WORD flag;
  4590.     WORD depth;
  4591.  
  4592.     STK *StackNew ()
  4593.  
  4594. ü
  4595. BESCHREIBUNGÇ
  4596.  
  4597.     Mitü stacknewÇ wird der Speicherplatz für eine neue Stackstruktur
  4598.     alloziert. Der Pointer, der vonü stacknewÇ bzw. vonü StackNewÇ gelie-
  4599.     fert wird, ist den anderen Stack-Funktionen als Parameter (handle)
  4600.     zu übergeben. name ist eine Zeichenkette, die beiü stackshowÇ als
  4601.     Titel angezeigt, ansonsten jedoch nicht ausgewertet wird (kann
  4602.     auch leer "" sein). Für flag kann entwederü STKNORMALÇ oder
  4603.    ü STKVARDEPTHÇ angegeben werden. Bei Übergabe vonü STKVARDEPTHÇ als
  4604.     flag wird die Tiefe des Stacks nicht bzw. nur durch den Speicher-
  4605.     platz begrenzt. depth ist die Maximal-Tiefe des Stacks, falls
  4606.     als flag üSTKNORMALÇ angegeben wird.ü StackNewÇ arbeitet wie üstacknewÇ,
  4607.     verlangt jedoch keine Parameter und erzeugt eine Stack-Struktur
  4608.     ohne Namen (name = "") und mit variabler Tiefe (üSTKVARDEPTHÇ).
  4609.  
  4610. ü
  4611. RETURNWERTÇ
  4612.  
  4613.     Pointer auf die neue Stack-Struktur.
  4614.  
  4615.  
  4616. üBEMERKUNGÇ
  4617.  
  4618.    ü StackNewÇ ist als Macro in stack.inc definiert und wird auf
  4619.     üstacknewÇ abgebildet.
  4620.     
  4621.  
  4622. üBEISPIELÇ
  4623.  
  4624.     ...
  4625.     
  4626.     STK *stackp;
  4627.  
  4628.     if ((stackp = stacknew ("Titel", STKVARDEPTH, 0)) == STKNULP)
  4629.     {
  4630.        fprintf (stderr, "Fehler beim Neuanlegen eines Stacks\n");
  4631.        exit (-1);
  4632.     }
  4633.     
  4634.     ...
  4635.  
  4636.     
  4637. ê______________________________________________________________________
  4638. êlibdata                    stacknew, StackNew                  libdataÇ
  4639.  
  4640.  
  4641. ü
  4642. DATEIENÇ
  4643.  
  4644.     stack.inc
  4645.     libdata.a
  4646.  
  4647. ü
  4648. REFERENZÇ
  4649.  
  4650.     stackdel
  4651.  
  4652.  
  4653.  
  4654.  
  4655.  
  4656.  
  4657.  
  4658.  
  4659.  
  4660.  
  4661.  
  4662.  
  4663.  
  4664.  
  4665.  
  4666.  
  4667.  
  4668.  
  4669.  
  4670.  
  4671.  
  4672.  
  4673.  
  4674.  
  4675.  
  4676.  
  4677.  
  4678.  
  4679.  
  4680.  
  4681.  
  4682.  
  4683.  
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696.  
  4697.  
  4698.  
  4699.  
  4700.  
  4701. ê______________________________________________________________________
  4702. êlibdata                         stackdel                       libdataÇ
  4703.  
  4704.  
  4705.  
  4706. üNAMEÇ
  4707.  
  4708.    à stackdel - Stackstruktur entfernenÇ
  4709.  
  4710.  
  4711. üSYNTAXÇ
  4712.  
  4713.     #include <stack.inc>
  4714.  
  4715.     VOID stackdel (stackp)
  4716.     STK  *stackp;
  4717.  
  4718.  
  4719. üBESCHREIBUNG
  4720.  
  4721.     stackdelÇ entfernt alle Stackelemente und die Struktur selbst.
  4722.  
  4723.  
  4724. üBEMERKUNGÇ
  4725.  
  4726.     keine
  4727.     
  4728.  
  4729. üBEISPIELÇ
  4730.  
  4731.     ...
  4732.     
  4733.     extern STK *stackp;
  4734.  
  4735.     if (stackempty (stackp))
  4736.        stackdel (stackp);
  4737.     
  4738.     ...
  4739.     
  4740.  
  4741. üDATEIENÇ
  4742.  
  4743.     stack.inc
  4744.     libdata.a
  4745.  
  4746.  
  4747. üREFERENZÇ
  4748.  
  4749.     stackempty, stackpop
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760.  
  4761.  
  4762.  
  4763.  
  4764.  
  4765. ê______________________________________________________________________
  4766. êlibdata   stackpush, PushBYTE, PushWORD, PushBOOL, PushLONG    libdataÇ
  4767.  
  4768.  
  4769.  
  4770. üNAMEÇ
  4771. à
  4772.     stackpush, PushBYTE, PushWORD, PushBOOL, PushUWORD,
  4773.     PushLONG, PushULONG, PushFLOAT, PushDOUBLE, PushSTRING,
  4774.     PushPOINTER  -  Element auf Stack pushen (legen)Ç
  4775.  
  4776.  
  4777. üSYNTAXÇ
  4778.  
  4779.     #include <stack.inc>
  4780.  
  4781.     BOOL stackpush (stp, type, buf)
  4782.     STK  *stp;
  4783.     WORD type;
  4784.     VARTYPE buf;
  4785.  
  4786.     BOOL PushBYTE (stp, chr)
  4787.     STK  *stp;
  4788.     BYTE chr;
  4789.  
  4790.     BOOL PushWORD (stp, wrd)
  4791.     STK  *stp;
  4792.     WORD wrd;
  4793.  
  4794.     BOOL PushUWORD (stp, uwrd)
  4795.     STK  *stp;
  4796.     UWORD uwrd;
  4797.  
  4798.     BOOL PushBOOL (stp, bool)
  4799.     STK  *stp;
  4800.     BOOL bool;
  4801.  
  4802.     BOOL PushLONG (stp, lng)
  4803.     STK  *stp;
  4804.     LONG lng;
  4805.  
  4806.     BOOL PushULONG (stp, ulng)
  4807.     STK  *stp;
  4808.     ULONG ulng;
  4809.  
  4810.     BOOL PushFLOAT (stp, flt)
  4811.     STK  *stp;
  4812.     FLOAT flt;
  4813.  
  4814.     BOOL PushDOUBLE (stp, dbl)
  4815.     STK  *stp;
  4816.     DOUBLE dbl;
  4817.  
  4818.     BOOL PushSTRING (stp, str)
  4819.     STK  *stp;
  4820.     BYTE *str;
  4821.  
  4822.     BOOL PushPOINTER (stp, ptr)
  4823.     STK  *stp;
  4824.     BYTE *ptr; (WORD *ptr; ...)
  4825.  
  4826.  
  4827.  
  4828.  
  4829. ê______________________________________________________________________
  4830. êlibdata   stackpush, PushBYTE, PushWORD, PushBOOL, PushLONG    libdataÇ
  4831.  
  4832.  
  4833.  
  4834. üBESCHREIBUNGÇ
  4835.  
  4836.     Mitü stackpushÇ können Elemente (Konstanten und Variablen) belie-
  4837.     bigen Typs auf den Stack stackp gepusht (gelegt) werden. Mit type
  4838.     wird üstackpushÇ der Typ des zu pushenden Elementes mitgeteilt
  4839.     (üSTKBYTE, STKBOOL, STKWORDÇ, ...).ü PushBYTEÇ, üPushWORDÇ, ... haben
  4840.     die gleiche Funktionalität wie üstackpushÇ, benötigen jedoch nicht
  4841.     den Typ des Elementes, da implizit im Aufruf enthalten.
  4842.     
  4843.  
  4844. üBEMERKUNGÇ
  4845.  
  4846.     üPushBYTEÇ, üPushWORDÇ, ... sind als Macros in stack.inc definiert
  4847.     und werden aufü stackpushÇ abgebildet.
  4848.     
  4849.  
  4850. üBEISPIELÇ
  4851.  
  4852.     ...
  4853.     
  4854.     extern STK *stackp;
  4855.     WORD wrd = 120;
  4856.     BYTE str[80];
  4857.  
  4858.     if (stackpush (stackp, STKBYTE, 'b') != TRUE)
  4859.        fprintf (stderr, "Fehler beim Pushen von 'b'\n");
  4860.     if (PushWORD (stackp, wrd) != TRUE)
  4861.        fprintf (stderr, "Fehler beim Pushen von '%d'\n", wrd);
  4862.     scanf ("%s", str);
  4863.     if (PushSTRING (stp, str) != TRUE)
  4864.        fprintf (stderr, "Fehler beim Pushen von '%s'\n", str);
  4865.     
  4866.     ...
  4867.     
  4868.  
  4869. üDATEIENÇ
  4870.  
  4871.     stack.inc
  4872.     libdata.a
  4873.  
  4874.  
  4875. üREFERENZÇ
  4876.  
  4877.     stackpop, stacktop
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.  
  4892. ê
  4893. ______________________________________________________________________
  4894. êlibdata                    stackpop, stacktop                  libdataÇ
  4895.  
  4896.  
  4897.  
  4898. üNAMEÇ
  4899. à
  4900.     stackpop, stacktop - Wert des obersten Stackelements holenÇ
  4901.  
  4902. ü
  4903. SYNTAXÇ
  4904.  
  4905.     #include <stack.inc>
  4906.  
  4907.     BOOL stackpop (stp, buf)
  4908.     STK  *stp;
  4909.     BYTE *buf; (bzw. WORD *buf; bzw. LONG *buf; ...)
  4910.  
  4911.     BOOL stacktop (stp, buf)
  4912.     STK  *stp;
  4913.     BYTE *buf; (bzw. WORD *buf; bzw. LONG *buf; ...)
  4914.  
  4915. ü
  4916. BESCHREIBUNGÇ
  4917.  
  4918.    ü stackpop Çliefert den Wert des obersten Stackelementes im Puffer
  4919.     buf. Dabei wird eine implizite Typumwandlung entsprechend dem
  4920.     Typ des Elements vorgenommen. Nach dem Füllen des Puffers wird
  4921.     das Element vom Stack entfernt (gepopt).ü stacktopÇ liefert eben-
  4922.     falls das oberste Element im Puffer buf, entfernt es jedoch nicht
  4923.     vom Stack.
  4924.  
  4925. ü
  4926. RETURNWERTÇ
  4927.  
  4928.    ü stackpopÇ undü stacktopÇ liefern TRUE, wenn der Stack nicht leer ist,
  4929.     FALSE sonst.
  4930.  
  4931.  
  4932. üBEMERKUNGÇ
  4933.  
  4934.     keine
  4935.     
  4936.  
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957. ê______________________________________________________________________
  4958. êlibdata                    stackpop, stacktop                  libdataÇ
  4959.  
  4960.  
  4961.  
  4962. üBEISPIELÇ
  4963.  
  4964.     ...
  4965.     
  4966.     VOID test (stackp)
  4967.     STK *stackp;
  4968.     {
  4969.        WORD  wrd;
  4970.        LONG  lng;
  4971.        BYTE  chr;
  4972.        BOOL  ret;
  4973.         
  4974.        ...
  4975.  
  4976.        if (!stackempty (stackp))
  4977.           if (stacktype (stackp) == STKWORD)
  4978.              stackpop (stackp, &wrd);
  4979.        switch (stacktype (stackp))
  4980.        {
  4981.           case STKBYTE:
  4982.              ret = stackpop (stackp, &chr);
  4983.              break;
  4984.           case STKLONG:
  4985.              ret = stackpop (stackp, &lng);
  4986.              break;
  4987.           case STKEMPTY:
  4988.              printf ("Fehler: Stack ist leer\n");
  4989.              break;
  4990.        }
  4991.        if (!ret)
  4992.           printf ("Fehler beim Popen, Stack ist leer\n");
  4993.        else
  4994.           ...
  4995.     }
  4996.     
  4997.     ...
  4998.     
  4999.  
  5000. üDATEIENÇ
  5001.  
  5002.     stack.inc
  5003.     libdata.a
  5004.  
  5005.  
  5006. üREFERENZÇ
  5007.  
  5008.     stacknew, stackpush
  5009.  
  5010.  
  5011.  
  5012.  
  5013.  
  5014.  
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.  
  5021. ê______________________________________________________________________
  5022. êlibdata                        stackshow                       libdataÇ
  5023.  
  5024.  
  5025.  
  5026. üNAMEÇ
  5027.  
  5028.    à stackshow - Attribute und Inhalte des Stacks anzeigenÇ
  5029.  
  5030.  
  5031. üSYNTAXÇ
  5032.  
  5033.     #include <stack.inc>
  5034.  
  5035.     VOID stackshow (stp)
  5036.     STK  *stp;
  5037.  
  5038.  
  5039. üBESCHREIBUNGÇ
  5040.  
  5041.     üstackshowÇ gibt die Attribute, also den Namen, das Attribut-Flag
  5042.     und die Tiefe des Stacks, sowie die einzelnen Elemente des Stacks
  5043.     auf dem Bildschirm aus. Dabei werden die Elemente durch '>' und 
  5044.     '<' eingefaßt. Die Elemente werden entsprechend ihrem Typ in eine
  5045.     lesbare Form gebracht. Das Top-Element wird als erstes angezeigt.
  5046.  
  5047.  
  5048. üBEMERKUNGÇ
  5049.  
  5050.     keine
  5051.     
  5052.  
  5053. üBEISPIELÇ
  5054.  
  5055.     ...
  5056.     
  5057.     extern STK *stackp;
  5058.  
  5059.     stackshow (stackp);
  5060.     
  5061.     ...
  5062.     
  5063.  
  5064. üDATEIENÇ
  5065.  
  5066.     stack.inc
  5067.     libdata.a
  5068.  
  5069.  
  5070. üREFERENZÇ
  5071.  
  5072.     stacknew, stacktop
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085. ê______________________________________________________________________
  5086. êlibdata                        stackempty                      libdataÇ
  5087.  
  5088.  
  5089.  
  5090. üNAMEÇ
  5091.  
  5092.     àstackempty - Prüfen, ob Stack leer istÇ
  5093.  
  5094.  
  5095. üSYNTAXÇ
  5096.  
  5097.     #include <stack.inc>
  5098.  
  5099.     BOOL stackempty (stackp)
  5100.     STK  *stackp;
  5101.  
  5102.  
  5103. üBESCHREIBUNGÇ
  5104.  
  5105.     üstackemptyÇ prüft, ob der Stack mit der Adresse stackp leer ist,
  5106.     also keine Elemente enthält.
  5107.  
  5108.  
  5109. üRETURNWERTÇ
  5110.  
  5111.    ü stackemptyÇ liefert TRUE, wenn Stack stackp leer ist, FALSE sonst.
  5112.  
  5113.  
  5114. üBEMERKUNGÇ
  5115.  
  5116.     üstackemptyÇ ist als Macro in stack.inc definiert.
  5117.     
  5118.  
  5119. üBEISPIELÇ
  5120.  
  5121.     ...
  5122.     
  5123.     VOID test (stackp)
  5124.     STK *stackp;
  5125.     {
  5126.        ...
  5127.  
  5128.        if (stackempty (stackp))
  5129.           printf ("Stack ist leer\n");
  5130.        else
  5131.           ...
  5132.     }
  5133.     
  5134.     ...
  5135.     
  5136.  
  5137. üDATEIENÇ
  5138.  
  5139.     stack.inc
  5140.     libdata.a
  5141.  
  5142.  
  5143. üREFERENZÇ
  5144.  
  5145.     stacktop, stackdepth
  5146.  
  5147.  
  5148.  
  5149. ê______________________________________________________________________
  5150. êlibdata                        stackdepth                      libdataÇ
  5151.  
  5152.  
  5153.  
  5154. üNAMEÇ
  5155.  
  5156.     àstackdepth - Anzahl der Stackelemente liefernÇ
  5157.  
  5158.  
  5159. üSYNTAXÇ
  5160.  
  5161.     #include <stack.inc>
  5162.  
  5163.     WORD stackdepth (stackp)
  5164.     STK  *stackp;
  5165.  
  5166.  
  5167. üBESCHREIBUNG
  5168.  
  5169.     stackdepthÇ liefert die Anzahl der Stackelemente (Tiefe des Stack).
  5170.  
  5171.  
  5172. üRETURNWERTÇ
  5173.  
  5174.     Die Anzahl der Stackelemente als WORD.
  5175.  
  5176.  
  5177. üBEMERKUNGÇ
  5178.  
  5179.     üstackdepthÇ ist als Macro in stack.inc definiert.
  5180.     
  5181.  
  5182. üBEISPIELÇ
  5183.  
  5184.     ...
  5185.     
  5186.     extern STK *stackp;
  5187.  
  5188.     printf ("Höhe des Stacks: %d\n", stackdepth (stackp));
  5189.     
  5190.     ...
  5191.     
  5192.  
  5193. üDATEIENÇ
  5194.  
  5195.     stack.inc
  5196.     libdata.a
  5197.  
  5198.  
  5199. üREFERENZÇ
  5200.  
  5201.     stackempty
  5202.  
  5203.  
  5204.  
  5205.  
  5206.  
  5207.  
  5208.  
  5209.  
  5210.  
  5211.  
  5212.  
  5213. ê______________________________________________________________________
  5214. êlibdata                         stacktype                      libdataÇ
  5215.  
  5216.  
  5217.  
  5218. üNAMEÇ
  5219.  
  5220.    à stacktype - Typ des obersten Stackelements liefernÇ
  5221.  
  5222.  
  5223. üSYNTAXÇ
  5224.  
  5225.     #include <stack.inc>
  5226.  
  5227.     WORD stacktype (stackp)
  5228.     STK  *stackp;
  5229.  
  5230.  
  5231. üBESCHREIBUNG
  5232.  
  5233.     stacktypeÇ testet, ob der Stack nicht leer ist und liefert dann
  5234.     den Typ des Top-Elements von stackp.
  5235.  
  5236.  
  5237. üRETURNWERTÇ
  5238.  
  5239.    ü stacktypeÇ liefert üSTKBYTE, STKBOOLÇ, ... wenn der Stack nicht leer
  5240.     ist, sonstü STKEMPTYÇ.
  5241.  
  5242.  
  5243. üBEMERKUNG
  5244.  
  5245.     stacktypeÇ ist als Macro in stack.inc definiert.
  5246.     
  5247.  
  5248. üBEISPIELÇ
  5249.  
  5250.     ...
  5251.     
  5252.     extern STK *stackp;
  5253.     BYTE chr;
  5254.  
  5255.     switch (stacktype (stackp))
  5256.     {
  5257.        case STKBYTE:
  5258.           stacktop (stackp, &chr);
  5259.           break;
  5260.        ...
  5261.     }
  5262.     ...
  5263.     
  5264.  
  5265. üDATEIENÇ
  5266.  
  5267.     stack.inc
  5268.     libdata.a
  5269.  
  5270.  
  5271. üREFERENZÇ
  5272.  
  5273.     stackempty
  5274.  
  5275.  
  5276.  
  5277. ê______________________________________________________________________
  5278. êlibdata                        stackname                       libdataÇ
  5279.  
  5280.  
  5281.  
  5282. üNAMEÇ
  5283.  
  5284.    à stackname - Name des Stacks liefernÇ
  5285.  
  5286.  
  5287. üSYNTAXÇ
  5288.  
  5289.     #include <stack.inc>
  5290.  
  5291.     BYTE *stackname (stackp)
  5292.     STK  *stackp;
  5293.  
  5294.  
  5295. üBESCHREIBUNGÇ
  5296.  
  5297.     üstacknameÇ liefert den Namen des Stacks, der bei üstacknewÇ mit über-
  5298.     geben wurde.
  5299.  
  5300.  
  5301. üRETURNWERTÇ
  5302.  
  5303.     Der Name des Stacks wird zurückgeliefert.
  5304.  
  5305.  
  5306. üBEMERKUNGÇ
  5307.  
  5308.     üstackname Çist als Macro in stack.inc definiert.
  5309.     
  5310.  
  5311. üBEISPIELÇ
  5312.  
  5313.     ...
  5314.     
  5315.     extern STK *stackp;
  5316.  
  5317.     printf ("Name des Stacks: %s\n", stackname (stackp));
  5318.     
  5319.     ...
  5320.     
  5321.  
  5322. üDATEIENÇ
  5323.  
  5324.     stack.inc
  5325.     libdata.a
  5326.  
  5327.  
  5328. üREFERENZÇ
  5329.  
  5330.     stacknew
  5331.  
  5332.  
  5333.  
  5334.  
  5335.  
  5336.  
  5337.  
  5338.  
  5339.  
  5340.  
  5341. ê______________________________________________________________________
  5342. êlibetc                       getarg, GetArg                     libetc
  5343. Ç
  5344.  
  5345.  
  5346. üNAMEÇ
  5347.  
  5348. à    getarg, GetArg - Programm-Argumente prüfen und Variablen zuordnen
  5349.  
  5350. ü
  5351. SYNTAX
  5352. Ç
  5353.     #include <getarg.inc>
  5354.  
  5355.     BOOL getarg (argc, argv, argtab, tabsize, flag, usage, exitval)
  5356.     WORD *argc;
  5357.     BYTE **argv;
  5358.     ARG  *argtab;
  5359.     WORD tabsize;
  5360.     WORD flag;
  5361.     BYTE *usage;
  5362.     WORD exitval;
  5363.  
  5364.     BOOL GetArg (argc, argv, argtab)
  5365.     WORD *argc;
  5366.     BYTE **argv;
  5367.     ARG  *argtab;
  5368.  
  5369.  
  5370. üBESCHREIBUNGÇ
  5371.  
  5372.     ügetargÇ bearbeitet den Programm-Argumentvektor argv und untersucht
  5373.     ihn in Hinsicht auf vorhandene Options-Argumente. Options-Argumen-
  5374. te werden durch ein '-' eingeleitet, gefolgt von einem Buchstaben.
  5375.     Diesem Buchstaben folgt der Wert des Options-Arguments (nicht
  5376.     durch Blank getrennt!). Der Wert eines Options-Arguments wird
  5377.     einer vorher vereinbarten Variablen zugeordnet. Beispiel:
  5378.  
  5379.         progname -l72 -b -otest
  5380.  
  5381.     oder auch
  5382.  
  5383.         progname -l72botest .
  5384.  
  5385.     In der Struktur argtab sind die gültigen (möglichen) Optionen und
  5386.     die Adressen ihrer zugeordneten Variablen verzeichnet. Die Struk-
  5387.     tur argtab unterliegt folgender Definition (s. a. getarg.inc):
  5388. ü    
  5389.         typedef struct
  5390.         { 
  5391.            BYTE  arg_arg;      /* Options-Argument-Zeichen  */
  5392.            BYTE  arg_type;     /* Typ des Options-Arguments */
  5393.            WORD *arg_varaddr;  /* Adresse der Variablen     */
  5394.            BYTE *arg_errmsg;   /* Fehlermeldungstext        */
  5395.         } 
  5396.         ARG;
  5397. Ç
  5398.  
  5399.  
  5400.  
  5401.  
  5402.  
  5403.  
  5404.  
  5405. ê______________________________________________________________________
  5406. êlibetc                       getarg, GetArg                     libetc
  5407. Ç
  5408.  
  5409.  
  5410.     In arg_arg muß der Buchstabe des Options-Arguments stehen. In
  5411.     arg_type ist der Type des Options-Arguments beschrieben. Folgende
  5412.     Typen werden erkannt:
  5413. ü
  5414.         IARG  =   Integer (WORD) 
  5415.         BARG  =   Boolescher (BOOL)
  5416.         CARG  =   Character (BYTE) 
  5417.         SARG  =   String (BYTE *)  
  5418.         PARG  =   Funktion (*WORD) ()
  5419.         NARG  =   Filename (BYTE *) 
  5420.         LARG  =   Long Integer (LONG)
  5421.         DARG  =   Double (DOUBLE)
  5422.     
  5423. Ç    Die Variable, deren Adresse in arg_varaddr vorliegt, muß vom Typ
  5424.     des Options-Arguments sein. Eine Besonderheit ist bei einem 
  5425.     Options-Argument vom Typ PARG zu beachten. Wird eine Option mit
  5426.     diesem Typ zur runtime dem Programm übergeben, so wird die Funk-
  5427.     tion, deren Adresse in arg_varaddr steht, aufgerufen. Zusätzlich
  5428.     wird dieser Funktion der rest der Zeichenkette, die durch das
  5429.     Argument eingeleitet wurde, als Parameter mit übergeben.
  5430.     Die Zeichenkette arg_errmsg kann einen Fehlertext enthalten, der
  5431.     bei der Anzeige der Liste aller möglichen Options-Argumente (s.u.)
  5432.     mit ausgegeben wird.
  5433.     Korrekt erkannte Options-Argumente werden aus dem Argument-Vektor
  5434.     argv entfernt und argc entsprechend um die Anzahl entfernter
  5435.     Argumente vermindert. tabsize enthält die Anzahl möglicher 
  5436.     Options-Argumente = Anzahl Einträge in argtab. Mit flag kann Ein-
  5437.     fluß auf die Sensibilität von ügetargÇ bei der Interpretation der
  5438.     Options-Argumente genommen werden. Dabei kann flag eine Veroderung
  5439.     aus der Menge der untenstehenen Flags sein:
  5440. ü    
  5441.         GAEXIT   =  Flag für Programmabbruch, wenn falsche Option
  5442.         GABREAK  =  Flag für Prozedurabbruch, wenn falsche Option
  5443.         GAUSAGE  =  Flag für Anzeige des usage, wenn falsche Option
  5444.         GANOCASE =  Flag für Vernachlässigung von Groß-/Kleinschrift
  5445. Ç
  5446.     Mit usage wird ein Text (String) übergeben, der angezeigt wird,
  5447.     falls eine falsche Option erkannt wurde (nur bei gesetztem Flag
  5448.     GAUSAGE).
  5449.     Mit exitval kann Einfluß auf den exit-Status des Programmes ge-
  5450.     nommen werden, wenn eine falsche Option erkannt wurde und das
  5451.     flag GAEXIT in flag gesetzt ist.
  5452.    ü GetArgÇ hat die gleiche Funktionalität wieü getargÇ, jedoch werden
  5453.     die letzten Parameter durch Default-Werte ersetzt (getarg.inc).
  5454.  
  5455.  
  5456. üRETURNWERTÇ
  5457.  
  5458.    ü getargÇ undüGetArgÇliefern TRUE, wenn alle Option-Argumente korrekt
  5459.  erkannt worden sind, FALSE sonst (bei nicht gesetztem GAEXIT).
  5460.  
  5461. ü
  5462. BEMERKUNG
  5463. Ç
  5464.    ü GetArgÇ ist als Macro in getarg.inc definiert und wird aufü getargÇ
  5465.     abgebildet. Da der String hinter der PARG-Option, der Funktion mit
  5466.  übergeben wird, muß ein folgendes Options-Argument erneut durch
  5467. ein '-' eingeleitet werden.
  5468.  
  5469. ê______________________________________________________________________
  5470. êlibetc                       getarg, GetArg                     libetc
  5471. Ç
  5472.  
  5473. üBEISPIELÇ
  5474.  
  5475.     BOOL   boolarg;
  5476.     BYTE   chararg;
  5477.     WORD   intarg;
  5478.     LONG   longarg = 0L;
  5479.     DOUBLE doubarg = 0.0;
  5480.     BYTE   strarg[100], filename[100];
  5481.     WORD   testproc();
  5482.  
  5483.     ARG argtab[] =
  5484.     {
  5485.        { 'b', BARG, &boolarg, "boolean arg"           },
  5486.        { 'c', CARG, (WORD *)&chararg, "character arg" },
  5487.        { 'i', IARG, &intarg,  "integer arg"           },
  5488.        { 'l', LARG, &longarg, "long int arg"          },
  5489.        { 'd', DARG, &doubarg, "double  arg"           },
  5490.        { 's', SARG, (WORD *)strarg,  "string arg"     },
  5491.        { 'n', NARG, (WORD *)fname,   "file arg"       },
  5492.        { 'p', PARG, (WORD *)testproc, "proc arg"      }
  5493.     };
  5494.  
  5495.     WORD testproc (str)
  5496.     BYTE *str;
  5497.     { 
  5498.        printf ("Inside procedure called by -p command line switch, ");
  5499.        printf (" string = <%s>\n\n", str);
  5500.        return (1);
  5501.     }
  5502.  
  5503.     VOID main (argc, argv)
  5504.     WORD argc;
  5505.     BYTE *argv[];
  5506.     { 
  5507.        WORD ret;
  5508.  
  5509.        ret = getarg (&argc, argv, argtab,TABSIZE (argtab),
  5510.  GAEXIT|GAUSAGE|GANOCASE, "usage", 2);
  5511.  
  5512.        printf ("boolarg: %d   \n", boolarg);
  5513.        printf ("chararg: %c   \n", chararg);
  5514.        printf ("intarg:  %d   \n", intarg);
  5515.        printf ("longarg: %ld  \n", longarg);
  5516.        printf ("doubarg: %lf  \n", doubarg);
  5517.        printf ("strarg:  <%s> \n", strarg);
  5518.        printf ("fname:   <%s> \n", fname);
  5519.     }
  5520.  
  5521. ü
  5522. DATEIEN
  5523. Ç
  5524.     getarg.inc
  5525.     libstr.inc
  5526.     libetc.a
  5527.     libstr.a
  5528.  
  5529. ü
  5530. REFERENZ
  5531. Ç
  5532.  
  5533. ê______________________________________________________________________
  5534. êlibetc                           system                         libetc
  5535.  
  5536. Ç
  5537.  
  5538. üNAMEÇ
  5539.  
  5540.    à system - Systemkommando ausführen  Ç                               
  5541.  
  5542.  
  5543. üSYNTAXÇ
  5544.  
  5545.     #include <libetc.inc>
  5546.  
  5547.     WORD system (com)
  5548.     BYTE  *com;
  5549.  
  5550.  
  5551. üBESCHREIBUNGÇ
  5552.  
  5553.    ü systemÇ führt das in com enthaltene Kommando aus. Dabei kann dem
  5554.     Kommando ein bzw. mehrere durch Leerzeichen getrennte Parameter
  5555.     folgen.
  5556.  
  5557.  
  5558. üRETURNWERTÇ
  5559.  
  5560.     üsystemÇ liefert den Rückgabewert vonü PexecÇ() zurück (0bedeutet
  5561. Kommandokonnteausgeführtwerden,negative Wertesind System-
  5562. Fehler).
  5563.  
  5564.  
  5565. üBEMERKUNGÇ
  5566.  
  5567.     keine
  5568.     
  5569.  
  5570. üBEISPIELÇ
  5571.  
  5572.     #include <libetc.inc>
  5573.     
  5574.     main ()
  5575.     {
  5576.        WORD ret;
  5577.         
  5578.        ret = system ("test.prg param1 param2");
  5579.        if (ret < 0)
  5580.           printf ("System-Error %d\n", ret);
  5581.     }
  5582.  
  5583.  
  5584. üDATEIENÇ
  5585.  
  5586.     libetc.inc
  5587.     libetc.a
  5588.     libstr.a
  5589.  
  5590.  
  5591. üREFERENZÇ
  5592.  
  5593. ê
  5594. Ç
  5595.  
  5596.  
  5597. ê______________________________________________________________________
  5598. êlibetc                          editfld                         libetcÇ
  5599.  
  5600.  
  5601.  
  5602. üNAMEÇ
  5603.  
  5604.     àeditfld - Zeichenkette bildschirmgesteuert editierenÇ
  5605.  
  5606.  
  5607. üSYNTAXÇ
  5608.  
  5609.     #include <libetc.inc>
  5610.  
  5611.     BYTE *editfld (col, row, text, pattern, efunc, epar,def)
  5612.     WORD col, row;
  5613.     STR text, pattern;
  5614.     PFBOOL efunc;
  5615.     STR epar;
  5616.     STR def;
  5617.  
  5618.  
  5619. üBESCHREIBUNGÇ
  5620.  
  5621.     Mit üeditfldÇ kann ein String editiert werden. Zum Editieren können
  5622.     die Cursortasten benutzt werden. Beendet wird die Eingabe mit
  5623.     RETURN, abgebrochen werden kann mit der ESCAPE-Taste. Das Feld
  5624.     wird an der Position col, row mit dem Titel text angezeigt. Direkt
  5625.     hinter text folgt das Eingabefeld (text kann leer sein). Die Zei-
  5626.     chen, die für die Eingabe zulässig sind, werdenü editfldÇ durch das
  5627.     Eingabemuster pattern mitgeteilt. Jedes Zeichen von pattern ent-
  5628.     spricht einem Zeichen des Feldes. Folgende Meta-Zeichen dienen dem
  5629.     Spezifizieren des entsprechenden Eingabezeichens:
  5630.  
  5631.  
  5632.      ü    ? : beliebiges Zeichen 
  5633.          # : beliebige Ziffer und '.' und '-' und '+'
  5634.          % : beliebige Ziffer  
  5635.          @ : bel. Zeichen, Buchstaben jedoch nur klein
  5636.          $ : bel. Zeichen, Buchstaben jedoch nur gross
  5637.          & : beliebiger Buchstabe Ç
  5638.  
  5639.  
  5640.     Alle anderen Zeichen werden direkt in das Feld geschrieben und kön-
  5641.     nen nicht geändert werden, sondern werden beim Bewegen der Cursor-
  5642.     position übersprungen. Mit efunc kann die Adresse einer BOOL-
  5643.     Funktion übergeben werden (oder NULFB), die dann vor dem Verlassen
  5644.     von üeditfldÇ aufgerufen wird (das Eingabefeld und epar werden efunc
  5645.     übergeben). Die Funktion efunc kann dazu benutzt werden, die ein-
  5646.     gegebenen Zeichen auf Zulässigkeit zu untersuchen. Bei einem
  5647.     Return-Wert von TRUE wird editfld verlassen. Mit def kann eine
  5648.     Zeichenkette übergeben werden, mit der die frei editierbaren Zei-
  5649.     chen des Eingabefeldes vorbelegt werden können.
  5650.  
  5651.  
  5652.  
  5653.  
  5654.  
  5655.  
  5656.  
  5657.  
  5658.  
  5659.  
  5660.  
  5661. ê______________________________________________________________________
  5662. êlibetc                          editfld                         libetcÇ
  5663.  
  5664.  
  5665.  
  5666.     Für das Editieren des Eingabefeldes haben folgende Tasten eine
  5667.     besondere Bedeutung:
  5668.     ü
  5669.          ESCAPE    - Abbruch
  5670.          RETURN,
  5671.          LINEFEED  - Ende des Editierens
  5672.          CURLEFT   - Ein Zeichen nach links (falls nicht am Anfang des
  5673.                      Feldes)
  5674.          CURRIGHT  - Ein Zeichen nach rechts (falls nicht am Ende des
  5675.                      Feldes)
  5676.          CURHOME   - Zum Anfang des Feldes springen
  5677.          TAB       - t_tw (Tabwidth) Zeichen weiter nach rechtsÇ
  5678.          
  5679.     Alle anderen Tasten werden als Eingabe-Zeichen interpretiert und
  5680.     auf Zulässigkeit untersucht.
  5681.     
  5682.  
  5683. üRETURNWERTÇ
  5684.  
  5685.     Zeiger auf das Eingabefeld oder NULP, falls mit ESCAPE abgebrochen
  5686.     wurde oder ein Fehler bei den übergebenen Parametern festgestellt
  5687.     wurde.
  5688.  
  5689.  
  5690. üBEMERKUNGÇ
  5691.  
  5692.     Das Eingabefeld wird in einem lokal statischen Puffer realisiert.
  5693.     Bei jedem Aufruf vonü editfld Çwird der Inhalt dieses Puffers mit 
  5694.     den aktuellen Werten überschrieben.
  5695.     Für die Benutzung der Cursor-Tasten muß vorher das Terminal ini-
  5696.     tialisiert werden (üt_initÇ()).
  5697.  
  5698.  
  5699. üBEISPIELÇ
  5700.  
  5701.     #include <libetc.inc>
  5702.     #include <libterm.inc>
  5703.     #include <libstr.inc>
  5704.  
  5705.     main ()
  5706.     {
  5707.        BYTE *ret,name[20];
  5708.        WORD month=1,row = 10, col = 20;
  5709.        BOOL chkmonth(), chkname();
  5710.        
  5711.        t_init();
  5712.        t_cblink();
  5713.        if ((ret = editfld (col, row, "Bitte Monat eingeben: ",
  5714.                            "%%", chkmonth, "", " 1")))
  5715.           month = atoi (ret);
  5716.        else
  5717.           printf ("Abbruch oder Fehler\n");
  5718.        if ((ret = editfld (col, row+2, "Bitte Name eingeben:  ",
  5719.                            "$$$$$$$$$$", chkname, "", "")))
  5720.           strcpy (name, ret);
  5721.  
  5722.  
  5723.  
  5724.  
  5725. ê______________________________________________________________________
  5726. êlibetc                          editfld                         libetcÇ
  5727.  
  5728.  
  5729.        t_getc();
  5730.        t_exit();
  5731.     }
  5732.  
  5733.     BOOL chkmonth (mbuf)
  5734.     BYTE *mbuf;
  5735.     {
  5736.        return (atoi (mbuf) >= 1 && atoi (mbuf) <= 12 ? TRUE : FALSE);
  5737.     }
  5738.  
  5739.     BOOL chkname (nbuf)
  5740.     BYTE *nbuf;
  5741.     {
  5742.        return (stremp (nbuf) ? FALSE : TRUE);
  5743.     }
  5744.  
  5745.  
  5746. üDATEIENÇ
  5747.  
  5748.     libetc.inc
  5749.     libetc.a
  5750.     libterm.a
  5751.     libstr.a
  5752.     termcap
  5753.  
  5754.  
  5755. üREFERENZÇ
  5756.  
  5757.     t_init, t_settw
  5758.  
  5759.  
  5760.  
  5761.  
  5762.  
  5763.  
  5764.  
  5765.  
  5766.  
  5767.  
  5768.  
  5769.  
  5770.  
  5771.  
  5772.  
  5773.  
  5774.  
  5775.  
  5776.  
  5777.  
  5778.  
  5779.  
  5780.  
  5781.  
  5782.  
  5783.  
  5784.  
  5785.  
  5786.  
  5787.  
  5788.  
  5789. ê______________________________________________________________________
  5790. 8000100001\ANHANG1.IMG
  5791. Ç
  5792.  
  5793.  
  5794.  
  5795.  
  5796.  
  5797.  
  5798.  
  5799.  
  5800.  
  5801.  
  5802.  
  5803.  
  5804.  
  5805.  
  5806.  
  5807.  
  5808.  
  5809.  
  5810.  
  5811. 8000100001\ANHANG2.IMG
  5812.  
  5813.  
  5814.  
  5815.  
  5816.  
  5817.  
  5818.  
  5819.  
  5820.  
  5821.  
  5822.  
  5823.  
  5824.  
  5825.  
  5826.  
  5827.  
  5828.  
  5829.  
  5830.  
  5831.  
  5832.  
  5833. 8000100001\ANHANG3.IMG
  5834.  
  5835.  
  5836.  
  5837.  
  5838.  
  5839.  
  5840.  
  5841.  
  5842.  
  5843.  
  5844.  
  5845.  
  5846.  
  5847.  
  5848.  
  5849.  
  5850.  
  5851.  
  5852.  
  5853.  
  5854.  
  5855.  
  5856.  
  5857. êAnhangtermcap                         Anhang
  5858.  
  5859. Ç
  5860.  
  5861. ae     str   (P)   end alternate character set
  5862. üal     str   (P*)  add new blanc lineÇæ1)Ç
  5863. am     bool        terminal has automatic margins
  5864. as     str   (P)   start alternate character set
  5865. bc     str         backspace if not ^H
  5866. bl     str         bell character
  5867. übs     bool        terminal can backspace with ^HÇæ1)Ç
  5868. BS     str         sent by backspace-key (if not bc)
  5869. bt     str   (P)   backtab
  5870. bw     bool        backspace wraps from column 0 to last column
  5871. c0..cF str         sent by shifted func-keys (# 0x10 ... 0x1F)
  5872. CC     str         command char in prototype if terminal setable
  5873. ücd     str   (P*)  clear to end of displayæ1)ü
  5874. ce     str   (P)   clear to end of lineÇæ1)Ç
  5875. üCF     str         cursor offæ1)Ç
  5876. ch     str   (P)   like cm but horizontal motion only, line stays same
  5877. CL     str         sent by char left-key
  5878. ücl     str   (P*)  clear screenÇæ1)Ç
  5879. ücL     str         clear to end of lineÇæ1)Ç
  5880. ücm     str   (P)   cursor motionÇæ1)Ç
  5881. CN     str         sent by cancel-key
  5882. üco     num         number of columns in lineÇæ1)Ç
  5883. üCO   str         cursor onæ1)Ç
  5884. CR     str         sent by char right-key
  5885. cr     str   (P*)  carriage return, default ^M
  5886. cs     str   (P)   change scrolling region (vt100), like cm
  5887. ücS     str         clear to end of screenÇæ1)Ç
  5888. cv     str   (P)   like ch but vertical only
  5889. CW     str         sent by change window-key
  5890. da     bool        display may be retained above
  5891. db     bool        display may be retained below
  5892. dB     num         number of millisecs of bs delay needed
  5893. dC     num         number of millisecs of cr delay needed
  5894. DC     str         sent by delete-char-key
  5895. üdc     str   (P*)  delete characterÇæ1)Ç
  5896. dF     num         number of millisecs of ff delay needed
  5897. DK     str         sent by down arrow-key, if not kd
  5898. DL     str         sent by delete-key
  5899. Dl     str         sent by destructive character delete-key
  5900. üdl     str   (P*)  delete lineÇæ1)Ç
  5901. dm     str         delete mode enter
  5902. dN     num         number of millisecs of nl delay needed
  5903. üdo     str         down one lineÇæ1)Ç
  5904. dT     num         number of millisecs of tab delay needed
  5905. ed     str         end delete mode
  5906. EE     str         end edit mode
  5907. EG     num         number of chars taken by ES and EE
  5908. üei     str         end insert mode; give `:ei=:` if icÇæ1)Ç
  5909. EN     str         sent by end-key
  5910. eo     str         can erase overstrikes with a blank
  5911. ES     str         start edit mode
  5912. ff     str   (P*)  hardcopy terminal page eject (default ^L)
  5913. FR     str         sent by field-recall-key
  5914. fs     str         return from statusline
  5915. FS     str         sent by field-store-key
  5916. ê
  5917. æ
  5918. 1)wirdvonvt52unterstütztê
  5919.  
  5920. ______________________________________________________________________
  5921. êAnhangtermcap                         Anhang
  5922.  
  5923. Ç
  5924.  
  5925. G1     str         upper-right corner graphic
  5926. G2     str         upper-left corner graphic
  5927. G3     str         lower-left corner graphic
  5928. G4     str         lower-right corner graphic
  5929. GC     str         cross lines (intersection) graphic
  5930. GD     str         down-tick graphic
  5931. GE     str         end graphics mode
  5932. GG     num         number of chars taken by GS and GE
  5933. GH     str         horizontal bar graphic
  5934. GL     str         left-tick graphic
  5935. GR     str         right-tick graphic
  5936. GS     str         start graphics mode
  5937. GU     str         up-tick graphic
  5938. GV     str         vertical bar graphic
  5939. hc     bool        hardcopy terminal
  5940. hd     str         halfline down (forward 1/2 linefeed)
  5941. HM     str         sent by home-key, if not kh
  5942. üho     str         cursor home, if no cmÇæ1)Ç
  5943. üHP     str         sent by help-keyÇæ1)Ç
  5944. hs     bool        has extra statusline
  5945. hu     str         halfline up (reverse 1/2 linefeed)
  5946. hz     str         hazeltine, can`t print ~s (tilde)
  5947. üic     str   (P)   insert characterÇæ1)Ç
  5948. if     str         name of file containing is
  5949. üim     bool        insert mode enter; give `:im=:q` if icÇæ1)Ç
  5950. in     bool        insert mode distinguishes nulls on display
  5951. ip     str   (P*)  insert pad after character inserted
  5952. üir     str         terminal resetæ1)ü
  5953. is     str         terminal initialization stringÇæ1)Ç
  5954. ük0..kF str         sent by func-keys (# 0x00 ... 0x0F)Çæ1)Ç
  5955. ka     str         sent by clear-all-tabs-key
  5956. kA     str         sent by insert-line-key
  5957. ükb     str         sent by backspace-keyÇæ1)Ç
  5958. kC     str         sent by clear-screen- or erase-key
  5959. kD     str         sent by delete-character-key
  5960. ükd     str         sent by terminal down-arrow-keyÇæ1)Ç
  5961. ke     str         out of keypad transmission mode
  5962. kE     str         sent by clear-to-end-of-line-key
  5963. KF     str         key-click off
  5964. kF     str         sent by scroll-forward-down-key
  5965. kH     str         sent by home-down-key
  5966. ükh     str         sent by home-keyÇæ1)Ç
  5967. ükI     str         sent by ins-char-/enter ins-mode-keyÇæ1)Ç
  5968. kL     str         sent by delete-line-key
  5969. ükl     str         sent by terminal left-arrow-keyÇæ1)Ç
  5970. ükn     num         number of func-keysÇæ1)Ç
  5971. ükN     str         sent by next-page-keyÇæ1)Ç
  5972. KO     str         key-click on
  5973. ko     str         termcap entries for other non-func-keys
  5974. kP     str         sent by previous-page-key
  5975. kR     str         sent by scroll-backward-up-key
  5976. ükr     str         sent by terminal right-arrow-keyÇæ1)Ç
  5977. ks     str         put terminal in keypad transmission mode
  5978. kS     str         sent by clear-to-end-of-screen-key
  5979. kt     str         sent by clear-tab-key
  5980. kT     str         sent by set-tab-key
  5981. ê
  5982. æ
  5983. 1)wirdvonvt52unterstütztê
  5984. ______________________________________________________________________
  5985. êAnhangtermcap                         Anhang
  5986. Ç
  5987.  
  5988.  
  5989. üku     str         sent by terminal up-arrow-keyÇæ1)Ç
  5990. l0..lF str         labels func-keys # 0x00 ... 0x0F
  5991. LD     str         sent by line-delete-key
  5992. üle     str         CursorleftÇæ1)Ç
  5993. LF     str         sent by linefeed-key
  5994. üli     str         number of lines on screen or pageÇæ1)Ç
  5995. LK     str         sent by left-arrow-key, if not kl
  5996. ll     str         last line, first column, if no cm
  5997. lm     num         no. of lines in memory if > li (0 means varies)
  5998. ma     str         arrow key map, used by vi version 2 only
  5999. mb     str         video-attr blinking on
  6000. md     str         video-attr bold on
  6001. üme     str         video-attr all attributes offÇæ1)Ç
  6002. mh     str         video-attr half-bright (dim) on
  6003. mi     bool        safe to move while in insert mode
  6004. mk     str         video-attr blank (invisible) on
  6005. ml     str         memory lock on above cursor
  6006. MN     str         sent by minus-sign-key
  6007. MP     str         multiplan initialization string
  6008. mp     str         video-attr protected on
  6009. MR     str         multiplan reset string
  6010. ümr     str         video-attr reverse onÇæ1)Ç
  6011. ms     bool        safe to move while in standout modes
  6012. mu     str         memory unlock (turn off memory lock)
  6013. nc     bool        not correctly working carriage return (dm2500, h2000)
  6014. ünd     str         non-destructive-space (cursor right)Çæ1)Ç
  6015. nl     str   (P*)  newline character (default \n)
  6016. ns     bool        terminal is crt but doesn`t scroll
  6017. NU     str         sent by next-unlocked-cell-key
  6018. os     bool        terminal overstrikes
  6019. pc     str         pad-character rather than null
  6020. PD     str         sent by page-down-key
  6021. PL     str         sent by page-left-key
  6022. PR     str         sent by page-right-key
  6023. PS     str         sent by plus-sign-key
  6024. üpt     bool        has hardware-tabs (may need to set with is)Çæ1)Ç
  6025. PU     str         sent by page-up-key
  6026. RC     str         sent by recalc-key
  6027. RF     str         sent by toggle-reference-key
  6028. RK     str         sent by right-arrow-key, if not kr
  6029. RT     str         sent by return-key
  6030. üse     str         end standout modeÇæ1)Ç
  6031. sf     str   (P)   scroll forwards
  6032. sg     num         number of blank characters left by so or se
  6033. üso     str         start standout modeÇæ1)Ç
  6034. üsr     str   (P)   scroll reverse (backwards)Çæ1)Ç
  6035. TA     str         sent by toggle-autocase-key
  6036. ta     str   (P)   tab (other than ^I or with padding)
  6037. TB     str         sent by tab-key
  6038. tc     str         entry of similar terminal - must be last
  6039. te     str         string to end programs that use cm
  6040. TI     str         sent by toggle-autoinsert-key
  6041. ti     str         string to start programs that use cm
  6042. ts     str         goto status-line col 1
  6043. uc     str         underscore one character and move past it
  6044. ue     str         end underscore mode
  6045. ê
  6046. æ
  6047. 1)wirdvonvt52unterstütztê
  6048. ______________________________________________________________________
  6049. êAnhangtermcap                         Anhang
  6050.  
  6051. Ç
  6052.  
  6053. ug     num         number of blank characters left by ue or us
  6054. UK     str         sent by up-arrow-key, if not ku
  6055. ul     bool        terminal underlines even thou it doesn`t overstrike
  6056. üup     str         upline (cursor up)Çæ1)Ç
  6057. us     str         start underscore mode
  6058. vb     str         visible bell (may not move cursor)
  6059. ve     str         end open/visual mode
  6060. vs     str         start open/visual mode
  6061. WL     str         sent by word-left-key
  6062. WR     str         sent by word-right-key
  6063. ws     num         no. of avail columns in statusline
  6064. xb     bool        beehive (f1=esc, f2=^C)
  6065. xn     bool        a newline is ignored after wrap (concept)
  6066. xr     bool        return acts like ce (\r\n) (delta data)
  6067. xs     bool        stand out not erased by writing over it (hp 264x)
  6068. xt     bool        tabs are destructive, magic so character
  6069.  
  6070.  
  6071.  
  6072.  
  6073.  
  6074.  
  6075.  
  6076.  
  6077.  
  6078.  
  6079.  
  6080.  
  6081.  
  6082.  
  6083.  
  6084.  
  6085.  
  6086.  
  6087.  
  6088.  
  6089.  
  6090.  
  6091.  
  6092.  
  6093.  
  6094.  
  6095.  
  6096.  
  6097.  
  6098.  
  6099.  
  6100.  
  6101.  
  6102.  
  6103.  
  6104.  
  6105.  
  6106.  
  6107.  
  6108.  
  6109. æ
  6110. 1)wirdvonvt52unterstütztÇ
  6111.  
  6112. ê______________________________________________________________________
  6113. 9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆........]0010
  6114. êAnhangAtari-Termcap                   Anhang
  6115. Ç
  6116.  
  6117.  
  6118. üNAMEÇ
  6119.  
  6120. àtermcap-DateiderTerminal-EigenschaftenÇ
  6121.  
  6122.  
  6123.  
  6124. st520:\
  6125.    :co#80:li#25:bs:pt:\
  6126.    :cm=\EY%d%d:up=\EA:do=\EB:nd=\EC:le=\ED:ho=\EH:sr=\EM:\
  6127.    :cd=\EJ:ce=\EK:cl=\EE:cL=\EK:cS=\EJ:\
  6128.    :CF=\Ef:CO=\Ee:\
  6129.    :al=\EL:dl=\EM:ic=\E@:dc=\EP:im=:ei=:\
  6130.    :mr=\Ep:me=\Eq:so=\Ep:se=\Eq:\
  6131.    :is=\EE:ir=\EE:rs=\E[?5l:\
  6132.    :ku=\EH:kd=\EP:kr=\EM:kl=\EK:kh=\EG:kb=^H:\
  6133.    :k0=\E\073:k1=\E\074:k2=\E\075:k3=\E\076:k4=\E\077:\
  6134.    :k5=\E\080:k6=\E\081:k7=\E\082:k8=\E\083:k9=\E\084:\
  6135.    :kA=\ET:kB=\EU:kC=\EV:kD=\EW:kE=\EX:kF=\EY:\
  6136.    :Al=\E\060:kN=\E2:HP=\Eb:kI=\ER:sc=\E7:rc=\E8:
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  
  6143.  
  6144.  
  6145.  
  6146.  
  6147.  
  6148.  
  6149.  
  6150.  
  6151.  
  6152.  
  6153.  
  6154.  
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160.  
  6161.  
  6162.  
  6163.  
  6164.  
  6165.  
  6166.  
  6167.  
  6168.  
  6169.  
  6170.  
  6171.  
  6172.  
  6173.  
  6174.  
  6175.  
  6176.  
  6177. ê______________________________________________________________________
  6178. êAnhangAtari vt52-Escapes              Anhang
  6179.  
  6180.  
  6181.  
  6182. ü      ESC A  -  Cursor Up
  6183. ÇDerCursorspringteineZeilenachoben,sofernersich
  6184. nichtbereitsindererstenZeilebefindet;dieSpalten-
  6185. positionwirdnichtgeändert.
  6186.       
  6187.      ü ESC B  -  Cursor DownÇ
  6188. DerCursorwirdaufdienächstenZeilegleicheSpalteposi-
  6189. tioniert,jedochnurfallsersichnichtschoninderletz-
  6190.           tenZeilebefindet.
  6191.       
  6192.       üESC C  -  Cursor RightÇ
  6193.            DerCursorwirdumeineSpaltenachrechtsverschoben,
  6194. jedochnicht,wennersichbereitsinderletztenSpalte
  6195. befindet.
  6196. ü      
  6197.       ESC D  -  Cursor Left
  6198. Ç           DerCursorwirdumeineSpaltenachlinkspositioniert,
  6199. jedochnur,wennersichnichtindererstenSpaltebefin-
  6200. det.
  6201.       
  6202.       üESC E  -  Clear ScreenÇ
  6203.            DerBildschirmwirdgelöschtundderCursoraufdieerste
  6204. Zeile,ersteSpaltepositioniert.
  6205.       
  6206.      ü ESC H  -  CursorHomeÇ
  6207.            DerCursorwirdindieersteZeile,ersteSpaltepositio-
  6208. niert.
  6209.       
  6210.      ü ESC I  -  Reverse IndexÇ
  6211.            WieCursorUp;istderCursorbereitsindererstenZeile,
  6212. soscrolltderBildschirmumeineZeilenachunten.
  6213. ü      
  6214.       ESC J  -  Erase to End of Screen
  6215. Ç           LöschtdenBildschirmabderaktuellenPositionbiszum
  6216. EndedesBildschirmes.
  6217.       
  6218.      ü ESC K  -  Erase to End of LineÇ
  6219.            LöschtdieaktuelleZeilevonderCursorpositionbiszum
  6220. EndederZeile.
  6221.       
  6222.      ü ESC L  -  Insert LineÇ
  6223.            FügteineleereZeileanderaktuellenPositionein.Der
  6224. CursorwirdandenAnfangderneuenZeilepositioniert.
  6225. DieeventuellfolgendenZeilenwerdenumeineZeilenach
  6226. untenverschoben.
  6227.  
  6228.      ü ESC M  -  Delete LineÇ
  6229.            LöschtdieaktuelleZeile;dienachfolgendenZeilenwerden
  6230. umeineZeilenachobengescrollt.
  6231. ê
  6232. Ç     ü ESC Y %c%c -  Position CursorÇ
  6233.            DerCursorwirdaufdiePosition%c%c(Spalte,Zeile)
  6234. gesetzt.DieNullpositionistdabeidielinkeobereBild-
  6235. schirmecke(wiebeiCursorHome).DieWertefürdiePosi-
  6236. tionenwerdendurchASCII-Zeichenab32(Leerzeichen)
  6237. bestimmt.
  6238. ê
  6239.  
  6240.  
  6241. ______________________________________________________________________
  6242. êAnhangAtari vt52-Escapes              Anhang
  6243.  
  6244.  
  6245. Ç      
  6246.      ü ESC b %c -  Set Foreground ColorÇ
  6247.            BeiFarbdarstellungwirddieVordergrundfarbeentsprechend
  6248. demWertvon%c,nurdieletztenvierBitssindrelevant,
  6249. gesetzt.
  6250.       
  6251.      ü ESC c %c -  Set Background ColorÇ
  6252.            Hintergrundfarbesetzen,sieheoben.
  6253.  
  6254.      ü ESC d  -  Erase toBeginning of DisplayÇ
  6255.            DerBildschirmwirdvomAnfangbiszurCursorposition
  6256. einschließlichgelöscht.
  6257.       
  6258.      ü ESC e  -  Enable CursorÇ
  6259.            DerCursorwirdangeschaltet.
  6260.       
  6261.      ü ESC f  -  Disable CursorÇ
  6262.            DerCursorwirdausgeschaltet.
  6263. ü      
  6264.       ESC j  -  Save Cursor Position
  6265. Ç           DieaktuelleCursorpositionwirdgespeichert.
  6266.  
  6267.      ü ESC k  -  Restore Cursor PositionÇ
  6268.            DerCursorwirdaufdieletztemitSaveCursorPositionge-
  6269. speichertePositiongesetzt.
  6270.       
  6271.      ü ESC l  -  Erase Entire LineÇ
  6272.            DieaktuelleZeilewirdgelöschtundderCursoraufdie
  6273. ersteSpaltedieserZeilegesetzt.
  6274.  
  6275.      ü ESC o  -  Erase Beginning of LineÇ
  6276.            DieaktuelleZeilewirdvomZeilenanfangbiszumCursor
  6277. einschließlichgelöscht.
  6278.       
  6279.       üESC p  -  Enter Inverse Video ModeÇ
  6280.            JedefolgendeTextausgabewirdininverserDarstellung
  6281. (weißeSchriftaufschwarzemHintergrund)geschrieben.
  6282.       
  6283.      ü ESC q  -  Exit Inverse Video ModeÇ
  6284.            JederfolgendeTextwirdinnormalerTextdarstellungaus-
  6285. gegeben.
  6286.  
  6287.     ü  ESC v  -  Wrap at End of LineÇ
  6288.            JedeTextausgabe,dieüberdasEndederZeilehinausgehen
  6289. würde,wirdindernächstenZeiledargestellt.
  6290.       
  6291.      ü ESC w  -  Discard at End of LineÇ
  6292.            JedeTextausgabe,dieüberdasEndederZeilehinausgehen
  6293. würde,wirdnuraufderletztenSpaltedargestellt,also
  6294. dasletzteZeichenwirdimmerwiederüberschrieben.
  6295.  
  6296.  
  6297.  
  6298.  
  6299.  
  6300.  
  6301.  
  6302.  
  6303.  
  6304.  
  6305. ê______________________________________________________________________Ç
  6306. 8000100001\INDEX1.IMG
  6307. ê
  6308.  
  6309.  
  6310.  
  6311.  
  6312.  
  6313.  
  6314.  
  6315.  
  6316.  
  6317.  
  6318.  
  6319.  
  6320.  
  6321.  
  6322.  
  6323.  
  6324.  
  6325.  
  6326.  
  6327. 8000100001\INDEX2.IMG
  6328.  
  6329.  
  6330.  
  6331.  
  6332.  
  6333.  
  6334.  
  6335.  
  6336.  
  6337.  
  6338.  
  6339.  
  6340.  
  6341.  
  6342.  
  6343.  
  6344.  
  6345.  
  6346.  
  6347.  
  6348.  
  6349.  
  6350.  
  6351. 8000100001\INDEX3.IMG
  6352.  
  6353.  
  6354.  
  6355.  
  6356.  
  6357.  
  6358.  
  6359.  
  6360.  
  6361.  
  6362.  
  6363.  
  6364.  
  6365.  
  6366.  
  6367.  
  6368.  
  6369.  
  6370.  
  6371.  
  6372.  
  6373. êIndex                           Index
  6374. Ç
  6375.  
  6376.  
  6377.     editfld  .................................................  88
  6378.  
  6379.     getarg  ..................................................  84
  6380.     GetArg  ..................................................  84
  6381.  
  6382.     libstr  ..................................................   8
  6383.  
  6384.     memchr  ..................................................  44
  6385.     memcmp  ..................................................  44
  6386.     memcpy  ..................................................  44
  6387.     memset  ..................................................  34
  6388.  
  6389.     PMDesel  .................................................  69
  6390.     pmexec  ..................................................  65
  6391.     pmselect  ................................................  69
  6392.     PMSelect  ................................................  69
  6393.     PushBOOL  ................................................  75
  6394.     PushBYTE  ................................................  75
  6395.     PushDOUBLE  ..............................................  75
  6396.     PushFLOAT  ...............................................  75
  6397.     PushLONG  ................................................  75
  6398.     PushPOINTER  .............................................  75
  6399.     PushSTRING  ..............................................  75
  6400.     PushULONG  ...............................................  75
  6401.     PushUWORD  ...............................................  75
  6402.     PushWORD  ................................................  75
  6403.  
  6404.     stack  ...................................................  71
  6405.     stackdel  ................................................  74
  6406.     stackdepth  ..............................................  81
  6407.     stackempty  ..............................................  80
  6408.     stackname  ...............................................  83
  6409.     stacknew  ................................................  72
  6410.     StackNew  ................................................  72
  6411.     stackpop  ................................................  77
  6412.     stackpush  ...............................................  75
  6413.     stackshow  ...............................................  79
  6414.     stacktop  ................................................  77
  6415.     stacktype  ...............................................  82
  6416.     stradj  ..................................................   9
  6417.     stradjl  .................................................   9
  6418.     stradjr  .................................................   9
  6419.     strcat  ..................................................  10
  6420.     strcatn  .................................................  10
  6421.     strchr  ..................................................  11
  6422.     strcmp  ..................................................  12
  6423.     strcnvl.  ................................................  14
  6424.     strcnvul  ................................................  14
  6425.     strcpy  ..................................................  16
  6426.     strcpyn  .................................................  16
  6427.     strcspn  .................................................  18
  6428.     strctr  ..................................................  19
  6429.     strdup  ..................................................  20
  6430.     stremp  ..................................................  21
  6431.     strfnd  ..................................................  22
  6432.     strfroml  ................................................  23
  6433.     strfromul  ...............................................  23
  6434.  
  6435.  
  6436. ê______________________________________________________________________Ç
  6437. êIndex                           Index
  6438. Ç
  6439.  
  6440.  
  6441.     strichr  .................................................  11
  6442.     stricmp  .................................................  12
  6443.     stricspn  ................................................  18
  6444.     strifnd  .................................................  22
  6445.     strimat  .................................................  27
  6446.     strinv  ..................................................  24
  6447.     stripbrk  ................................................  29
  6448.     stripos  .................................................  30
  6449.     strirchr  ................................................  11
  6450.     strirpbrk  ...............................................  29
  6451.     strirpl  .................................................  33
  6452.     strirpos  ................................................  30
  6453.     strirsort  ...............................................  36
  6454.     strirstr  ................................................  37
  6455.     striscmp  ................................................  12
  6456.     strisort  ................................................  36
  6457.     strispn  .................................................  18
  6458.     stristr  .................................................  37
  6459.     strlen  ..................................................  25
  6460.     strlwr  ..................................................  26
  6461.     strlwrg  .................................................  26
  6462.     strmat  ..................................................  27
  6463.     strn0cpy  ................................................  16
  6464.     strncat  .................................................  10
  6465.     strncatn  ................................................  10
  6466.     strncmp  .................................................  12
  6467.     strncpy  .................................................  16
  6468.     strncpyn  ................................................  16
  6469.     strndup  .................................................  20
  6470.     strnemp  .................................................  21
  6471.     strnicmp  ................................................  12
  6472.     strnimat  ................................................  27
  6473.     strninv  .................................................  24
  6474.     strnirpl  ................................................  33
  6475.     strniscmp  ...............................................  12
  6476.     strnlwr  .................................................  26
  6477.     strnlwrg  ................................................  26
  6478.     strnmat  .................................................  27
  6479.     strnrotl  ................................................  32
  6480.     strnrotr  ................................................  32
  6481.     strnrpl  .................................................  33
  6482.     strnscmp  ................................................  12
  6483.     strnset  .................................................  34
  6484.     strnspc  .................................................  34
  6485.     strnupr  .................................................  42
  6486.     strnuprg  ................................................  42
  6487.     strpbrk  .................................................  29
  6488.     strpcpy  .................................................  16
  6489.     strpos  ..................................................  30
  6490.     strptrm  .................................................  40
  6491.     strptrml  ................................................  40
  6492.     strptrmr  ................................................  40
  6493.     strrchr  .................................................  11
  6494.     strrev  ..................................................  31
  6495.     strrotl  .................................................  32
  6496.     strrotr  .................................................  32
  6497.     strrpbrk  ................................................  29
  6498.  
  6499.  
  6500. ê______________________________________________________________________Ç
  6501. êIndex                           Index
  6502. Ç
  6503.  
  6504.  
  6505.     strrpl  ..................................................  33
  6506.     strrpos  .................................................  30
  6507.     strrsort  ................................................  36
  6508.     strrstr  .................................................  37
  6509.     strscmp  .................................................  12
  6510.     strset  ..................................................  34
  6511.     strsort  .................................................  36
  6512.     strspc  ..................................................  34
  6513.     strspn  ..................................................  18
  6514.     strsset  .................................................  34
  6515.     strstr  ..................................................  37
  6516.     strtof  ..................................................  39
  6517.     strtok  ..................................................  38
  6518.     strtol  ..................................................  39
  6519.     strtoul  .................................................  39
  6520.     strtrm  ..................................................  40
  6521.     strtrml  .................................................  40
  6522.     strtrmr  .................................................  40
  6523.     strupr  ..................................................  42
  6524.     struprg  .................................................  42
  6525.     strwupr  .................................................  42
  6526.     subnstr  .................................................  43
  6527.     substr  ..................................................  43
  6528.     system  ..................................................  87
  6529.  
  6530.     t_beep  ..................................................  55
  6531.     t_box  ...................................................  63
  6532.     t_cblink  ................................................  58
  6533.     t_cdown  .................................................  60
  6534.     t_chome  .................................................  60
  6535.     t_cleft  .................................................  60
  6536.     t_cleol  .................................................  56
  6537.     t_cleos  .................................................  56
  6538.     t_cls  ...................................................  56
  6539.     t_cright  ................................................  60
  6540.     t_csteady  ...............................................  58
  6541.     t_cup  ...................................................  60
  6542.     t_cursoff  ...............................................  57
  6543.     t_curson  ................................................  57
  6544.     t_cursstat  ..............................................  57
  6545.     t_exit  ..................................................  53
  6546.     t_getc  ..................................................  59
  6547.     t_goxy  ..................................................  60
  6548.     t_hline  .................................................  63
  6549.     t_init  ..................................................  52
  6550.     t_invoff  ................................................  61
  6551.     t_invon  .................................................  61
  6552.     t_rawoff  ................................................  54
  6553.     t_rawon  .................................................  54
  6554.     t_setatt  ................................................  61
  6555.     t_settw  .................................................  62
  6556.     t_vline  .................................................  63
  6557.     termcap  .................................................  96
  6558.     tgetent  .................................................  46
  6559.     tgetflag  ................................................  48
  6560.     tgetnum  .................................................  47
  6561.  
  6562.  
  6563.  
  6564. ê______________________________________________________________________Ç
  6565. êIndex                           Index
  6566. Ç
  6567.  
  6568.  
  6569.     tgetstr  .................................................  49
  6570.     tgoto  ...................................................  50
  6571.     tputs  ...................................................  51
  6572.  
  6573.  
  6574.  
  6575.  
  6576.  
  6577.  
  6578.  
  6579.  
  6580.  
  6581.  
  6582.  
  6583.  
  6584.  
  6585.  
  6586.  
  6587.  
  6588.  
  6589.  
  6590.  
  6591.  
  6592.  
  6593.  
  6594.  
  6595.  
  6596.  
  6597.  
  6598.  
  6599.  
  6600.  
  6601.  
  6602.  
  6603.  
  6604.  
  6605.  
  6606.  
  6607.  
  6608.  
  6609.  
  6610.  
  6611.  
  6612.  
  6613.  
  6614.  
  6615.  
  6616.  
  6617.  
  6618.  
  6619.  
  6620.  
  6621.  
  6622.  
  6623.  
  6624.  
  6625.  
  6626.  
  6627.  
  6628. ê______________________________________________________________________
  6629.